I am a newbie to Documentum Web services framework. Currently I am doing a POC for one of my client on Documentum Web Services Framework (version 5.3 SP4). I have followed the WSF_53_development.pdf and Inside the Web Services Framework article by Fabian Lee.
I have successfully developed and deployed the example Web Services mentioned in the dev guide including the Content transfer one. But I am getting an exception when I am trying to use a JavaBean object as an argument of the SBO method (implemented as WebService). This method is basically used to set the Metadata of an object imported into DCTM (using WebServices itself).
Following are my SBO implementation and Interface classes.
com.xyz.pics.eapp.PicsSetAttributes (Implementation class)
com.xyz.pics.eapp. IPicsSetAttributes(Interface class)
com.xyz.pics.eapp. PicsAttributesBean(JavaBean object)- This implements java.io.Serializable. Also has got a no args constructor
I have packaged Implementation class and the JavaBean class in the implementation jar. The signature of the setPicsMetadata method is as below.
public boolean setPicsMetadata(String docId,PicsAttributesBean picsBean) throws DfException;
Please note that, all the above 3 class files are in the same java package (com.xyz.pics.eapp).
I have deployed the WAR file on my Application Server as mentioned in the Dev guide. When I call the service from my TestService java class file, I am getting the following exception from my client program.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString:
faultActor:
faultNode:
faultDetail:
{http://xyz.com/ws/2008/PicsSetAttributes}fault:<ns1:message>com.xyz.pics.eapp.PicsAttributesBean</ns1:message>
{http://xml.apache.org/axis/}exceptionName:com.xyz.ws._2008.PicsSetAttributes.WebServiceException
{http://xml.apache.org/axis/}hostname:at-sydn-afrd
……………………
………………..(more lines…)
Here is the exception thrown by the Application Server where the Services are hosted (WAR file).
0000001f ServletWrappe A SRVE0242I: [picsws] [/picsws] [AxisServlet]: Initialization successful.
ERROR [WebContainer : 0] com.xyz.ws._2008.PicsSetAttributes.PicsSetAttributesSoapBindingImpl - com.xyz.pics.eapp.PicsAttributesBean
java.lang.NoClassDefFoundError: com.xyz.pics.eapp.PicsAttributesBean
at com.xyz.ws._2008.PicsSetAttributes.PicsSetAttributesSoapBindingImpl.class$(PicsSetAttributesSoapBindingImpl.java:62)
at com.xyz.ws._2008.PicsSetAttributes.PicsSetAttributesSoapBindingImpl.setPicsMetadata(PicsSetAttributesSoapBindingImpl.java:62)
at com.xyz.ws._2008.PicsSetAttributes.PicsSetAttributesSoapBindingSkeleton.setPicsMetadata(PicsSetAttributesSoapBindingSkeleton.java:63)
What I didn’t understand is, when I opened the dctmgen_PicsSetAttributes.jar file from the WAR file (the one generated by Documentum App Builder), I could see that the jar file has got two PicsAttributesBean class references. The path for one bean class was the same as my namespace. ie com.xyz.ws._2008.PicsSetAttributes. But the other bean class path was com.xyz.pics.eapp.generated
According to the above exception, it is not referring to the com.xyz.pics.eapp.generated package. The ‘generated’ package was added by Documentum when it builds the WebServices WAR file.
Is this the expected behavior or do I have to take care of any other scenarios when I am passing the JavaBean as an argument over the webservices wire. Ihave attached my deploy.wsdd and wsdl files for reference.
Please help!!!!