on 11-25-2008 3:08 PM
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
Hi Adrian,
Thanks, I am busy configuring the datasources etc and will see how it goes.
Regards Jaco
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Adrian,
Thanks, I will have a look to see if we can consolidate any properties on 'NoPkMetaBase' to 'MetaBase'.
Thanks Jaco
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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 {
.......
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
>
> 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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
71 | |
26 | |
10 | |
9 | |
7 | |
6 | |
4 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.