cancel
Showing results for 
Search instead for 
Did you mean: 

Deployment Error: Web AS 6.4 Preview

Former Member
0 Kudos

I'm trying to deploy an existing application EAR using deployTool

which contains a JAR and a WAR file. In the ejb-jar.xml I have the text shown below:

<message-driven >

<description><![CDATA[Cleanup TPX Service]]></description>

<display-name>CleanupMDBService</display-name>

<ejb-name>CleanupMDBService</ejb-name>

<ejb-class>com.clearorbit.connect.service.mdb.CleanupMDBService</ejb-class>

<transaction-type>Container</transaction-type>

<acknowledge-mode>Auto-acknowledge</acknowledge-mode>

<message-driven-destination>

<destination-type>javax.jms.Queue</destination-type>

</message-driven-destination>

</message-driven>

When I try to deploy I get a parse error:

com.sap.engine.deploy.exceptions.BaseIOException: Cannot parse persistent.xml

or storage.xml for jar <path to jar here>

Reason: com.sap.engine.deploy.exceptions.BaseIOException: Cannot parse ejb-jar.xml for jar <path to jar here>

Reason: java.lang.ArrayIndexOutOfBoundsException: 2..

When I take the acknowledge-mode tag out

i.e. <acknowledge-mode>Auto-acknowledge</acknowledge-mode>, it deploys.

If I use the deploy tool's GUI

to set the acknowledge-mode for an MDB, it generates

the exact same XML code as I have in my existing ejb-jar.xml. Why can't deploytool parse this line?

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member523944
Discoverer
0 Kudos

This is the result of stringency in Netweaver's interpretation of the the EJB specifications. In particular, you must not specify values for options that aren't applicable to the rest of your context.

The tag acknowledge-mode is only applicable to bean managed transactions. Don't specifiy it for container managed transactions.

The tag subscription-durability is only applicable to topics. Don't specify it for queues.

There may be others. These are 2 that I have found.