cancel
Showing results for 
Search instead for 
Did you mean: 

Problem deploying an ear

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

elena_yaneva
Explorer
0 Kudos

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

Former Member
0 Kudos

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

Vlado
Advisor
Advisor
0 Kudos

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

Former Member
0 Kudos

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

Vlado
Advisor
Advisor
0 Kudos

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

Former Member
0 Kudos

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!

Former Member
0 Kudos

Hi,

see <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7bb9751d-0e01-0010-febd-c3adce2c408c">this</a> article for more information on creating DataSources.

Hope that helps!

Former Member
0 Kudos

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

Vlado
Advisor
Advisor
0 Kudos

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

Former Member
0 Kudos

You are absolutely right! I am wandering why I didn't guess it myself! prefix "jdbc/" in the exception must have confuse me. Btw, the description of datasource file (including dtd) doesn't say it is a jndi name.

Well, I am a bit further now...!

Answers (1)

Answers (1)

Former Member
0 Kudos

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...