Hello, I have some problems running the example with an own wsdl-file which contains minOccurs="0" for parameters of an operation. If the parameter is not send through the request I get an IndexOutOfBoundsException. If all parameters are set, there are no problems. Is this my mistake or is there any bug? Hopefully you could help me.
In the attachment you find the wsdl, composite and source-code files and also the messages I was sending through telnet. The whole sample to run can be found under http://www.thehappy.de/~lookshe/pub/my-bpel.zip which includes all libaries, modified build.xml and a batch-file to start the server. Regards Sebastian
POST /PioWs HTTP/1.1 content-type: text/xml; charset=utf-8 content-length: 1147 accept-language: en soapaction: "" accept: text/xml callingtype: SA user-agent: my user agent host: 10.16.4.176:65000 <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header></soap-env:Header><soap-env:Body><n0:EXTERNALNOTIFICATION xmlns:n0="myns"><ACTIONIN>INIT_SESSION</ACTIONIN><CHANGENUMIN>ABCDEFGHIJKL</CHANGENUMIN><DOCUMENTDESTSIN></DOCUMENTDESTSIN><DOCUMENTSOURCEIN></DOCUMENTSOURCEIN><PARAMETERSIN><item><NAMESPACE>com</NAMESPACE><NAME>SID</NAME><VALUE>Q35</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>CLIENT</NAME><VALUE>002</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>USER</NAME><VALUE>C5090517</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>LANGUAGE</NAME><VALUE>E</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>ISO_LANGUAGE</NAME><VALUE>EN</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>HOST</NAME><VALUE>uxai1q35</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>INSTANCE</NAME><VALUE>uxai1q35_Q35_21</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>SWITCHON</NAME><VALUE>X</VALUE></item></PARAMETERSIN><SESSIONIDIN>5245BCB0EFBE4D4684BC31332E563111</SESSIONIDIN><TIMEIN>INIT</TIMEIN><WORKINGDIRIN>abc</WORKINGDIRIN></n0:EXTERNALNOTIFICATION></soap-env:Body></soap-env:Envelope>
POST /PioWs HTTP/1.1 content-type: text/xml; charset=utf-8 content-length: 1115 accept-language: en soapaction: "" accept: text/xml callingtype: SA user-agent: my user agent host: 10.16.4.176:65000 <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header></soap-env:Header><soap-env:Body><n0:EXTERNALNOTIFICATION xmlns:n0="myns"><ACTIONIN>INIT_SESSION</ACTIONIN><CHANGENUMIN>ABCDEFGHIJKL</CHANGENUMIN><DOCUMENTDESTSIN></DOCUMENTDESTSIN><DOCUMENTSOURCEIN></DOCUMENTSOURCEIN><PARAMETERSIN><item><NAMESPACE>com</NAMESPACE><NAME>SID</NAME><VALUE>Q35</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>CLIENT</NAME><VALUE>002</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>USER</NAME><VALUE>C5090517</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>LANGUAGE</NAME><VALUE>E</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>ISO_LANGUAGE</NAME><VALUE>EN</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>HOST</NAME><VALUE>uxai1q35</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>INSTANCE</NAME><VALUE>uxai1q35_Q35_21</VALUE></item><item><NAMESPACE>com</NAMESPACE><NAME>SWITCHON</NAME><VALUE>X</VALUE></item></PARAMETERSIN><SESSIONIDIN>5245BCB0EFBE4D4684BC31332E563111</SESSIONIDIN><TIMEIN>INIT</TIMEIN></n0:EXTERNALNOTIFICATION></soap-env:Body></soap-env:Envelope>
my.wsdl
Description: XML document
<?xml version="1.0" encoding="ISO-8859-15"?> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:tns="myns" name="COMMPIO" targetNamespace="myns"> <component name="myns"> <implementation.java class="helloworld.SimpleServer"/> <service name="COMMPIO"> <interface.wsdl interface="myns#wsdl.interface(COMM_PIO)"/> <binding.ws uri="http://localhost:8090/PioWs"/> </service> </component> </composite>
package helloworld; import java.rmi.RemoteException; import myns.COMMPIO; import myns.IFDOCUMENTT; import myns.IFPARAMETERT; import myns.IFRETURNT; public class SimpleServer implements COMMPIO { private static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("de.cenit.SimpleServer"); public String EXTERNALNOTIFICATION(String arg0, String arg1, IFDOCUMENTT arg2, IFDOCUMENTT arg3, IFPARAMETERT arg4, String arg5, String arg6, String arg7) throws RemoteException { System.out.println("IT WORKS!!!"); logger.info("IT WORKS!!!"); // TODO Auto-generated method stub return null; } }