cancel
Showing results for 
Search instead for 
Did you mean: 

Deployment issue with Hibernate JPA provider and Netweaver CE 7.1

Former Member
0 Kudos

Hi,

We have our custom application that we have tested and developed against Tomcat 5, using the hibernate and the hibernate JPA provider. It works perfectly under Tomcat 5. We need to port our application to work on Netweaver CE 7.1.

An earlier version of our application ran on Netweaver 7.0, and we had to enable the heavy loading by following the information in the following two links to get hibernate working properly on 7.1.

http://help.sap.com/saphelp_nwce10/helpdata/en/46/b902f8d0b22880e10000000a155369/content.htm

https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/6447

I have also followed the above for our latest version which uses JPA, but during deployment I get the following error:

Description:

+ 1. [ERROR CODE DPL.DS.5402] JLinEE reported following erros for sap.com/Manifest application.+

ERRORS:

* ORPersistence Model Builder: Exception occurred: com.sap.engine.services.orpersistence.model.ormappingmodel.ORMException: Annotated method 'addEquipmentIdentification' of class 'com.tatis.core.declaration.model.ConsignmentItem' does not conform to getter method name requirements at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMUtils.stripPrefix(ORMUtils.java:1619), file: n/a, column 0, line 0, severity: error

Hint: 1) Given application file is not valid one.

This is a utility method annotated with '@Transient' and therefore should be ignored

@Transient
   	public void addEquipmentIdentification(EquipmentIdentification value ) {
        	value.setConsignmentItem(this);
        	getEquipmentIdentifications().add(value);
   	}

So if I understand it correctly heavy loading wont help right now, since the application isn't running yet, and these check are being done during deployment. But heavy loading will help as soon as the application is deployed and started up.

The application is stored in an WAR file that is packaged within an EAR file that contains the lib folder for the heavy loading and the other required deployment descriptors.

Is there any way to force the hibernate JPA to be in effect during deployment so that this check doesnt fail, or some other way to bypass it?

Any help will be appreciated.

Edited by: Johann Muller on Nov 26, 2008 10:37 AM

Edited by: Johann Muller on Nov 26, 2008 3:35 PM

Accepted Solutions (0)

Answers (8)

Answers (8)

Former Member
0 Kudos

Hi Adrian,

Thanks, I am busy configuring the datasources etc and will see how it goes.

Regards Jaco

Former Member
0 Kudos

Hi Adrian,

We get the following exception on deploy and when we try and start the war. It seems to be a lookup for datasources.

Thanks Jaco

Description:

1. Warning occurred on server 5651450 during deploy JavaEE/manifest-2.0.Phase2_Beta01 : Fields Properties Check: exception occurred in test: java.lang.NullPointerException at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMUtils.isTransient(ORMUtils.java:1112), file: ., column -1, line -1, severity: warning

Warning occurred on server 5651450 during deploy JavaEE/manifest-2.0.Phase2_Beta01 : Model Creator: exception occurred in test: java.lang.NullPointerException at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMUtils.isTransient(ORMUtils.java:1112), file: ., column -1, line -1, severity: warning

2. Exception has been returned while the 'JavaEE/manifest-2.0.Phase2_Beta01' was starting. Warning/Exception :

[ERROR CODE DPL.DS.6193] Error while ; nested exception is:

com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5030] Clusterwide exception: server ID 5651450:com.sap.engine.services.orpersistence.container.deploy.ActionException: [ERROR CODE DPL.DS.5030] Clusterwide exception: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of JPA_DEFAULT.

at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:584)

at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:343)

at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:637)

at javax.naming.InitialContext.lookup(InitialContext.java:351)

at javax.naming.InitialContext.lookup(InitialContext.java:351)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.initDataSources(ComplexModuleCreator.java:344)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.initRuntimeModels(ComplexModuleCreator.java:230)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.createModule(ComplexModuleCreator.java:154)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.execute(ComplexModuleCreator.java:84)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexActionAdapter.execute(ComplexActionAdapter.java:34)

at com.sap.engine.services.orpersistence.container.deploy.impl.ApplicationCreator.execute(ApplicationCreator.java:74)

at com.sap.engine.services.orpersistence.container.deploy.impl.PersistenceContainer.prepareStart(PersistenceContainer.java:187)

at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:219)

at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:179)

at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)

at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesImpl(ParallelAdapter.java:498)

at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:554)

at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:251)

at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:392)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3389)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3375)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3278)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3251)

at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)

at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)

at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)

at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)

at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)

at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)

at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)

at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)

at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)

at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:877)

at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)

at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)

at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)

at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.initDataSources(ComplexModuleCreator.java:360)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.initRuntimeModels(ComplexModuleCreator.java:230)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.createModule(ComplexModuleCreator.java:154)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.execute(ComplexModuleCreator.java:84)

at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexActionAdapter.execute(ComplexActionAdapter.java:34)

at com.sap.engine.services.orpersistence.container.deploy.impl.ApplicationCreator.execute(ApplicationCreator.java:74)

at com.sap.engine.services.orpersistence.container.deploy.impl.PersistenceContainer.prepareStart(PersistenceContainer.java:187)

at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:219)

at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:179)

at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)

at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesImpl(ParallelAdapter.java:498)

at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:554)

at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:251)

at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:392)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3389)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3375)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3278)

at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3251)

at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)

at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)

at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)

at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)

at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)

at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)

at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)

at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)

at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)

at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:877)

at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)

at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)

at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)

at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)

Vlado
Advisor
Advisor
0 Kudos

Hi Johann,

Please refer to [Configuring the Persistence Unit in the persistence.xml|http://help.sap.com/saphelp_nwce10/helpdata/en/46/96ec3c33621e5ce10000000a1553f6/frameset.htm].

HTH!

\-- Vladimir

adrian_goerler
Active Participant
0 Kudos

Hi,

1) The NPE is a bit strange. Could it be that there is some misplaced @Transient annotation left?

2) Please explictly specify the name of the JTA data source in the persistence.xml

I hope this get you further,

-Adrian

Former Member
0 Kudos

Hi Adrian,

Thanks, I will have a look to see if we can consolidate any properties on 'NoPkMetaBase' to 'MetaBase'.

Thanks Jaco

Former Member
0 Kudos

Hi Adrian,

Here is an example of the class hierarchy.

Regards Jaco

@MappedSuperclass

@XmlTransient

public abstract class NoPKMetaBase implements Meta {

.....

}

@MappedSuperclass

@XmlTransient

public abstract class MetaBase extends NoPKMetaBase {

private long pk;

protected String key;

private Map<Object, Collection> annotations = new HashMap();

protected MetaBase() {

}

public String getKey() {

return key;

}

public void setKey(String key) {

this.key = key;

}

@Id

@GeneratedValue

public long getPk() {

return pk;

}

public void setPk(long pk) {

this.pk = pk;

}

.....

}

@Entity

@XmlAccessorType(XmlAccessType.NONE)

public class EntryCustomsOfficeWCO extends MetaBase {

.......

}

adrian_goerler
Active Participant
0 Kudos

Hi,

does NoPKMetaBase have any JPA annotations? If thats not the case you could remove @MappedSuperClass from NoPKMetaBase.

I hope this helps.

-Adrian

Former Member
0 Kudos

Hi,

We have removed the @Transient where its not required, and it seems deployment is going further but still fails somewhere else now.

We are using abstract base class to define generic persistent properties and the primary key property. This class is annotated with '@MappedSuperclass' and is extended by other entities.

We however get the following error when using this mapping scenario:

S U M M A R Y

~~~~~~~~~~~~~~~~~~~

Successfully deployed: 0

Deployed with warnings: 0

Failed deployments: 1

~~~~~~~~~~~~~~~~~~~

1. File:C:\Documents and Settings\johann.muller\.sap\SDA\manifest.war

Name:manifest

Vendor:JavaEE

Location:Deployment Manager

Version:42

Deploy status:Aborted

Version:NEW

Description:

1. [ERROR CODE DPL.DS.5402] JLinEE reported following erros for JavaEE/manifest application.

ERRORS:

  • Model Creator: Error during model creation occured: com.sap.engine.services.orpersistence.model.ormappingmodel.ORMException: Persistent class 'com.tatis.core.declaration.model.EntryCustomsOfficeWCO' is root of the entity hierarchy but doesn't define primary key(s) nor any primary keys are defined in a mapped superclass if such is present

at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMappingModelCreatorImpl.parsePersistentClass(ORMappingModelCreatorImpl.java:897)

at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMappingModelCreatorImpl.createModel(ORMappingModelCreatorImpl.java:366)

at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMappingModelCreatorImpl.createModel(ORMappingModelCreatorImpl.java:321)

at com.sap.engine.services.orpersistence.model.builders.ModuleCreator.fillORMappingModel(ModuleCreator.java:153)

at com.sap.tc.jtools.jlinee.orpersistence.tests.ModelCreatorTest.execute(ModelCreatorTest.java:35)

at com.sap.tc.jtools.jlinee.lib.framework.dependency.Node.execute(Node.java:211)

at com.sap.tc.jtools.jlinee.lib.framework.JLinEETestProcessor.executeAll(JLinEETestProcessor.java:153)

at com.sap.tc.jtools.jlinee.lib.framework.JLinEETestProcessor.execute(JLinEETestProcessor.java:123)

at com.sap.engine.jlinee.lib.impl.TestManager.executeTestsForAppComponent(TestManager.java:153)

at com.sap.engine.jlinee.lib.impl.TestManager.executeTests(TestManager.java:88)

at com.sap.engine.jlinee.lib.JLinEEValidatorImpl.validateApplication(JLinEEValidatorImpl.java:143)

at com.sap.engine.services.deploy.server.validate.jlin.impl.JLinPluninImpl.exec(JLinPluninImpl.java:80)

at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.validateApplication(DeployUtilTransaction.java:346)

at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.commonBegin(DeployUtilTransaction.java:234)

at com.sap.engine.services.deploy.server.application.DeploymentTransaction.begin(DeploymentTransaction.java:201)

at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:411)

at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:445)

at com.sap.engine.services.deploy.server.DeployServiceImpl.makeGlobalTransaction(DeployServiceImpl.java:2528)

at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:350)

at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:341)

at com.sap.engine.services.dc.gd.impl.ApplicationDeployer.deploy(ApplicationDeployer.java:85)

at com.sap.engine.services.dc.gd.impl.InitialApplicationDeployer.performDeployment(InitialApplicationDeployer.java:93)

at com.sap.engine.services.dc.gd.impl.InitialGenericDeliveryImpl.deploy(InitialGenericDeliveryImpl.java:59)

at com.sap.engine.services.dc.cm.deploy.impl.OnlineDeployProcessor.performDelivery(OnlineDeployProcessor.java:158)

at com.sap.engine.services.dc.cm.deploy.impl.DeliverOnlineDeployProcessor.deploy(DeliverOnlineDeployProcessor.java:42)

at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor$DeployProcessorHelper.visit(AbstractDeployProcessor.java:178)

at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)

at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor.deploy(AbstractDeployProcessor.java:77)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:726)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)

at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)

at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)

at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)

at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)

at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:877)

at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)

at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)

at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)

at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304), file: META-INF/persistence.xml, column 0, line 0, severity: error

Hint: 1) Given application file is not valid one.

Regards Jaco

adrian_goerler
Active Participant
0 Kudos

Hi Johann,

could you please provide us with the sources of the mapped superclass and of the entity EntryCustomsOfficeWCO so that we can have a look.

Best regards,

Adrian

adrian_goerler
Active Participant
0 Kudos

Hi,

the fact that NW parses the persistence unit for non-SAP JPA persistence providers is a known bug. This issue is addressed in the next EhP (2).

Unfortunately, it is not possible to bypass this, currently. We'll evaluate the options to patch this in the next SPs.

-Adrian

danny_deroovere
Participant
0 Kudos

Johann,

As far as I know a transient variable is a variable that may not be serialized (mechanism for making an object's state persistent). You use the transient keyword to tell the JVM that the indicated variable is not part of the persistent state of the object.

Do you realy need this?

If not, can you remove it from your code and deploy it again?

KR - Danny

Edited by: Danny De Roovere on Nov 26, 2008 4:57 PM

Former Member
0 Kudos

Hi Vladimir, Danny,

Thanks for responding so quickly.

From what I can remember hibernate requires the annotation for any non-persistent properties, but I could be wrong. I will have a look again.

Maybe more as a side issue, why does NetWeaver need to parse the persistence model if it is not specified as the persistence provider in the persistence xml? Is there a way to disable this?

Regards Jaco

Vlado
Advisor
Advisor
0 Kudos

>

> From what I can remember hibernate requires the annotation for any non-persistent properties, but I could be wrong. I will have a look again.

>

However, as indicated before, this is not a property, so you should not use @Transient here. This goes contra the JPA spec. Does Hibernate really require it for any method?!

Regards,

\-- Vladimir

Vlado
Advisor
Advisor
0 Kudos

Hi Johann,

Please refer to section 9.1.16 of the JPA 1.0 spec:

<i>The Transient annotation is used to annotate a property or field of an entity class, mapped superclass, or embeddable class. It specifies that the property or field is not persistent.</i>

The method "addEquipmentIdentification" is not a property getter method, you should not place that annotation on it.

HTH!

\-- Vladimir