on 03-21-2007 1:19 AM
HI all,
I am trying to deploy a JBoss Seam demo on the server using the command line tool and the deployment fails. The trace says:
#1.5 #C000C0A83E3500010000000300961DFFFFFFFFFFFFFFFFFF#1174439328000#com.sap.engine.deployment.proxy.dc.DeploymentProxyDCImpl##com.sap.engine.deployment.proxy.dc.DeploymentProxyDCImpl#######Thread[Thread-9,5,main]##0#0#Error##Plain###Could not deploy C:
Java
SAP
JP1
JC00
j2ee
deployment
SAP_DM
1174439321546_jboss-seam-booking.ear
jboss-seam-booking.ear with properties {}#
#1.5 #C000C0A83E3500010000000500961DFFFFFFFFFFFFFFFFFF#1174439328015#com.sap.engine.deployment.operations.DistributeOperation##com.sap.engine.deployment.operations.DistributeOperation#######Thread[Thread-9,5,main]##0#0#Error#1#/System/Server/Deployment#Java###Could not distribute
[EXCEPTION]
#2#C:
Java
SAP
JP1
JC00
j2ee
deployment
SAP_DM
1174439321546_jboss-seam-booking.ear
jboss-seam-booking.ear#com.sap.engine.deployment.exceptions.SAPRemoteException
at com.sap.engine.deployment.proxy.dc.DeploymentProxyDCImpl.distribute(DeploymentProxyDCImpl.java:151)
at com.sap.engine.deployment.operations.DistributeOperation.run(DistributeOperation.java:111)
at java.lang.Thread.run(Thread.java:595)
Any idea what the problem could be?
Thank in advance,
Siarhei Dudzin
Hello Siarhei,
Unfortunately from the trace here, I could not see what the problem is.
However you can check some logs for more info.
The default trace is located :
C:\Java\SAP\JP1\JC00\j2ee\cluster\server0\log
You can also check the deploy logs in:
C:\Java\SAP\JP1\JC00\work
If you are unable to spot the problem from the logs, you can paste the relevant information, and we will try to help.
Best Regards,
Elena
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Elena,
Thanks for the tips on where to look for proper logs! (The directory structure is a bit overwhelming after JBoss).
Anyway, I found the following relevant (I think?) information in c:\Java\SAP\JP1\JC00\j2ee\cluster\server0\log\defaultTrace.0.trc :
[code]
#1.5 #0050FC5CD300000800000001000015AC0000000000000000#1174512228015#com.sap.engine.library.monitor.mapping.ccms.RuntimeParameters##
com.sap.engine.library.monitor.mapping.ccms.RuntimeParameters#######System [38]##0#0#Error##Plain###Can't create CCMS connector
directory (
sad
saploc
CCMS
JP1_00
j2ee8459050). Check file system permissions.#
#1.5 #0050FC5CD300000D00000013000015AC012C869C8FE02381#1174512420515#com.sap.tc.jtools.jlinee.lib##com.sap.tc.jtools.jlinee.lib#
Administrator#6#####Thread[RMI/IIOP Worker [4],5,Dedicated_Application_Thread]##0#0#Error##Java###
[EXCEPTION]
#1#java.lang.IllegalArgumentException: There is no class information for class with name [null] (the Main-Class). Possible reasons:
1) The name is misspelled in MANIFEST.MF; 2) The application as a whole is assumed as version 1.4 or less,
so there is no information for the annotations, but the application client itself is version 5.0
at com.sap.tc.jtools.jlinee.appclient.model.AppClientModelBuilder.build(AppClientModelBuilder.java:106)
at com.sap.tc.jtools.jlinee.lib.model.impl.AbstractModelBuilderTest.execute(AbstractModelBuilderTest.java:48)
at com.sap.tc.jtools.jlinee.lib.framework.dependency.Node.execute(Node.java:258)
at com.sap.tc.jtools.jlinee.lib.framework.JLinEETestProcessor.executeAll(JLinEETestProcessor.java:154)
at com.sap.tc.jtools.jlinee.lib.framework.JLinEETestProcessor.execute(JLinEETestProcessor.java:124)
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:76)
at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.validateApplication(DeployUtilTransaction.java:342)
at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.commonBegin(DeployUtilTransaction.java:241)
at com.sap.engine.services.deploy.server.application.DeploymentTransaction.begin(DeploymentTransaction.java:215)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:371)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:405)
at com.sap.engine.services.deploy.server.DeployServiceImpl.makeGlobalTransaction(DeployServiceImpl.java:2298)
at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:286)
at com.sap.engine.services.dc.gd.impl.ApplicationDeployer.performDeployment(ApplicationDeployer.java:150)
at com.sap.engine.services.dc.gd.impl.GenericDeliveryImpl.deploy(GenericDeliveryImpl.java:54)
at com.sap.engine.services.dc.cm.deploy.impl.OnlineDeployProcessor.performDelivery(OnlineDeployProcessor.java:157)
at com.sap.engine.services.dc.cm.deploy.impl.DeliverOnlineDeployProcessor.deploy(DeliverOnlineDeployProcessor.java:41)
at com.sap.engine.services.dc.cm.deploy.impl.AbstractDeployProcessor$DeployProcessorHelper.visit(AbstractDeployProcessor.java:177)
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:76)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:624)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:483)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:206)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:153)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:807)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:253)
at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:109)
at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:841)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:125)
at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:59)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:168)
[/code]
The logs at C:\Java\SAP\JP1\JC00\work also give me the same info:
[code]ERRORS:
Application Client Model Builder: Exception occurred: java.lang.IllegalArgumentException:
There is no class information for class with name [null] (the Main-Class). Possible reasons:
1) The name is misspelled in MANIFEST.MF;
2) The application as a whole is assumed as version 1.4 or less, so there is no information for the annotations,
but the application client itself is version 5.0 at
com.sap.tc.jtools.jlinee.appclient.model.AppClientModelBuilder.build(AppClientModelBuilder.java:106),
file: el-api.jar#el-api.jar, column 0, line 0, severity: error[/code]
The ear is a booking demo from JBoss Seam which is 'supposed' to run on any JEE 5 application server. Although I do not expect it to run 'out of the box' as there is no SAP NW specific deployment descriptors yet, the error messages don't give me enough hints to immidiately identify the problem.
Thanks again for the help.
Regards,
Siarhei
Hi Siarhei,
The error message suggests that you have an application-client JAR module in the demo EAR, but its MANIFEST.MF is incorrect, i.e. the Main-Class is specified as "null". For more information regarding application clients in Java EE 5 please refer to <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/508d47ba-3878-2910-2aa1-ed752063993e">this article</a>.
> The ear is a booking demo from JBoss Seam
> which is 'supposed' to run on any JEE 5 application server.
Unfortunately, pretty often this is not true. We've seen a number of JBoss sample applications that even violate the Java EE specs or at least are not portable (rely on some non-standard features).
Hope that helps!
-Vladimir
Hi Vladimir,
I too realize that some JBoss applications have indeed vendor specific dependencies. However, the goal of JBoss Seam is to stay vendor independent and so far their applications run on quite a big variety of JEE servers and even just servlet containers.
I also noticed the error message about the main-class and decided to check which jar may have the unspecified main-class and to my surprise none of the MANIFEST.MF files in the whole ear even has Main-Class entry! So my wild guess is that the error message is not exactly accurate (although I am not claiming at this point that there is no error) and there is a problem somewhere else.
Just in case if you're interested to check out what the problem with the MANIFEST.MF can be you can get the compiled ear at http://www.emaps-online.com/temp/jboss-seam-booking.ear
Thanks again!
Siarhei
Hi Siarhei,
The JAR is indicated in the last error message you've pasted above:
file: el-api.jar
Here is the error: The application.xml contains:
<module>
<java>jboss-seam.jar</java>
</module>
<!-- Remove these lines for JSF 1.2 -->
<module>
<java>el-api.jar</java>
</module>
<module>
<java>el-ri.jar</java>
</module>
These define three application client modules (reference: the Java EE spec). However, neither of them defines a Main-Class in its MANIFEST.MF. If you remove those lines from the application.xml that should solve the problem.
BTW, SAP Java EE 5 Server supports JSF 1.2, so you can remove the last two jars from the EAR at all.
HTH!
-Vladimir
This particular problem was solved by deleting application.xml and the server was figuring out what is what.
Now I came to the point that the ear is successfully deployed but is not started because it cant find the data source. In JBoss the data source is normally deployed to the deploy directory where the hot deployment mechanism picks it up and installs.
Now I will need to figure out how to install the datasource on the server and I hope I can progress further!
Thanks again for the help!
Thank you very much for the link, it was extremely useful!
I have now defined the datasource as following (btw, is vendor_sql ok for HSQL-DB because other options caused unknown vendor exceptions?):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data-sources SYSTEM 'data-sources.dtd'>
<data-sources>
<data-source>
<data-source-name>bookingDatasource</data-source-name>
<driver-name>HSQLDB</driver-name>
<init-connections>1</init-connections>
<max-connections>10</max-connections>
<max-time-to-wait-connection>60</max-time-to-wait-connection>
<expiration-control>
<connection-lifetime>600</connection-lifetime>
<run-cleanup-thread>60</run-cleanup-thread>
</expiration-control>
<sql-engine>vendor_sql</sql-engine>
<jdbc-1.x>
<driver-class-name>org.hsqldb.jdbcDriver</driver-class-name>
<url>jdbc:hsqldb:.</url>
<user-name>sa</user-name>
<password></password>
</jdbc-1.x>
</data-source>
</data-sources>
I've also defined a driver name HSQLDB via telnet console.
Now I am getting NameNotFoundException:
[EXCEPTION]
#1#com.sap.engine.services.deploy.exceptions.ServerDeploymentException: Clusterwide exception: server ID 8459050:com.sap.engine.services.orpersistence.container.deploy.ActionException: Clusterwide exception: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at java:, the whole lookup name is jdbc/java:/bookingDatasource.
at com.sap.engine.services.jndi.implserver.ServerContextImpl.getLastContainer(ServerContextImpl.java:260)
at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:625)
at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:344)
at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:638)
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:209)
at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.initRuntimeModels(ComplexModuleCreator.java:183)
at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.createModule(ComplexModuleCreator.java:130)
at com.sap.engine.services.orpersistence.container.deploy.impl.ComplexModuleCreator.execute(ComplexModuleCreator.java:78)
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:77)
at com.sap.engine.services.orpersistence.container.deploy.impl.PersistenceContainer.prepareStart(PersistenceContainer.java:181)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:233)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:193)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:380)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:405)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:259)
at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:535)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:171)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:315)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3163)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3070)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3043)
at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:98)
at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)
at com.sap.engine.services.dc.lcm.impl.RemoteLCMImpl.start(RemoteLCMImpl.java:45)
at com.sap.engine.services.dc.lcm.impl.RemoteLCMImplp4_Skel.dispatch(RemoteLCMImplp4_Skel.java:233)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:253)
at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:109)
at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:841)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:125)
at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:59)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
Any idea why the datasource is suddenly not found? I tried to find jndi tree but without much success. I did however find that HSQLDB and bookingDatasource are registered under "Application Resources" in the web management console...
I understand that I still have to go a long path in porting this example on SAP Netweaver (will have to switch to SAP JPA, etc), but once this is ported the results may be very fruitful
The problem seems to be related to your persistence.xml. There the datasource used must be specified exactly as <b>"bookingDatasource"</b>, and apparently it is currently "java:/bookingDatasource". So, time to start porting
And yes, Vendor SQL is the only possible option in this case since HSQLDB is not an SAP supported database.
HTH!
-Vladimir
I've marked the question as "not answered" because there are still problems. I can create a new thread if that'll be more suitable... although it may be useful to keep it to this thread for some initial background information...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
95 | |
11 | |
11 | |
10 | |
9 | |
8 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.