Error Generating WebService for SOAP over JMS

Hi,
I've been tring to create an addition web service thta takes two input and returns the sum. I was able to generate the WSDL using JDevelopers GUI tool for generating WSDL, but I notices that there was no transport layer, in thebinding that suppoerted SOAP, and the "create web service from WSDL" wizard also gave and error message:
oracle.jdeveloper.webservices.model.WebServiceException: The chosen WSDL contains no SOAP 1.1 bindings and is therefore unsuitable for generation of a JAX-RPC web service for WLS. Only SOAP 1.1 bindings are supported for generation of JAX-RPC web services for deployment to WLS.
This is the WSDL I created:
<?xml version="1.0" encoding="UTF-8" ?>
<definitions targetNamespace="http://www.example.org/addition"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://www.example.org/addition"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:jms="http://schemas.xmlsoap.org/wsdl/jms/"
xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/">
<types>
<xsd:schema targetNamespace="http://www.example.org/addition/types"
elementFormDefault="qualified"/>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:add="http://www.example.org/addition"
targetNamespace="http://www.example.org/addition"
elementFormDefault="qualified">
<xsd:element name="additionInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="a" type="xsd:int"/>
<xsd:element name="b" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="additionOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="sum" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="AdditionInputMessage">
<part name="payload" element="tns:additionInput"/>
</message>
<message name="AdditionOutputMessage">
<part name="payload" element="tns:additionOutput"/>
</message>
<portType name="AdditionPortType">
<operation name="addition">
<input message="tns:AdditionInputMessage"/>
<output message="tns:AdditionOutputMessage"/>
</operation>
</portType>
<binding name="AdditionPortTypeJMSBinding" type="tns:AdditionPortType">
<jms:binding type="ObjectMessage"/>
<format:typeMapping encoding="Java" style="Java">
<format:typeMap typeName="tns:additionInput" formatType=""/>
<format:typeMap typeName="tns:additionOutput" formatType=""/>
</format:typeMapping>
<operation name="addition">
<input>
<jms:input parts="payload"/>
<jms:property name="payloadProperty" part="payload"/>
</input>
<output>
<jms:output parts="payload"/>
<jms:property name="payloadProperty" part="payload"/>
</output>
</operation>
</binding>
<service name="AdditionPortType">
<port name="AdditionPortTypePort" binding="tns:AdditionPortTypeJMSBinding"/>
</service>
</definitions>
Could someone please help me out? I've been struggling with this problem for two weeks and can't make any headway. It's really driving me nuts. I've looked all over the web, and while everyone agrees that SOAP over JMS is possible, no one sems to have a working solution. One example I was able to get hold of used ant for deployment, but the deploy task failed when I ran it. Please, please help me.

Hi,
I've been tring to create an addition web service thta takes two input and returns the sum. I was able to generate the WSDL using JDevelopers GUI tool for generating WSDL, but I notices that there was no transport layer, in thebinding that suppoerted SOAP, and the "create web service from WSDL" wizard also gave and error message:
oracle.jdeveloper.webservices.model.WebServiceException: The chosen WSDL contains no SOAP 1.1 bindings and is therefore unsuitable for generation of a JAX-RPC web service for WLS. Only SOAP 1.1 bindings are supported for generation of JAX-RPC web services for deployment to WLS.
This is the WSDL I created:
<?xml version="1.0" encoding="UTF-8" ?>
<definitions targetNamespace="http://www.example.org/addition"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://www.example.org/addition"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:jms="http://schemas.xmlsoap.org/wsdl/jms/"
xmlns:format="http://schemas.xmlsoap.org/wsdl/formatbinding/">
<types>
<xsd:schema targetNamespace="http://www.example.org/addition/types"
elementFormDefault="qualified"/>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:add="http://www.example.org/addition"
targetNamespace="http://www.example.org/addition"
elementFormDefault="qualified">
<xsd:element name="additionInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="a" type="xsd:int"/>
<xsd:element name="b" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="additionOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="sum" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="AdditionInputMessage">
<part name="payload" element="tns:additionInput"/>
</message>
<message name="AdditionOutputMessage">
<part name="payload" element="tns:additionOutput"/>
</message>
<portType name="AdditionPortType">
<operation name="addition">
<input message="tns:AdditionInputMessage"/>
<output message="tns:AdditionOutputMessage"/>
</operation>
</portType>
<binding name="AdditionPortTypeJMSBinding" type="tns:AdditionPortType">
<jms:binding type="ObjectMessage"/>
<format:typeMapping encoding="Java" style="Java">
<format:typeMap typeName="tns:additionInput" formatType=""/>
<format:typeMap typeName="tns:additionOutput" formatType=""/>
</format:typeMapping>
<operation name="addition">
<input>
<jms:input parts="payload"/>
<jms:property name="payloadProperty" part="payload"/>
</input>
<output>
<jms:output parts="payload"/>
<jms:property name="payloadProperty" part="payload"/>
</output>
</operation>
</binding>
<service name="AdditionPortType">
<port name="AdditionPortTypePort" binding="tns:AdditionPortTypeJMSBinding"/>
</service>
</definitions>
Could someone please help me out? I've been struggling with this problem for two weeks and can't make any headway. It's really driving me nuts. I've looked all over the web, and while everyone agrees that SOAP over JMS is possible, no one sems to have a working solution. One example I was able to get hold of used ant for deployment, but the deploy task failed when I ran it. Please, please help me.

Similar Messages

  • How to get contents of Soap Over JMS web service's wsdl file

    Hi,
    Is there a way to get the soap over jms webservice's wsdl file in browser? if yes please provide me the details how to get it.
    OR how can i get the contensts of WSDL file for soap over jms wsdl file.
    thanks in advance.

    I have the same question ("Assuming I can generate a wsdl file, can I recreate the SOAP request message from the WSDL file automatically (that matches the original request, which is hand build by me?)")
    Have you already found an answer to this?

  • SOAP over JMS with Oracle tool chain

    Hi,
    is there an easy way to create a webservice with SOAP over JMS for Oracle Application Servers?
    Are there any tutorials, docus or examples?
    Any hint is appreciated....

    I found a first step...:
    In JDeveloper i created a "new..."-> "Webservice->JMS Adapter"
    This created a complete wsdl:
    <definitions
    name="MySOAPoverJMS"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/jms/MySOAPoverJMS/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/jms/MySOAPoverJMS/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:pc="http://xmlns.oracle.com/pcbpel/" xmlns:imp1="http://xmlns.oracle.com/pcbpel/adapter/db/DBAPP/ADDEMPLOYEES/"
    xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/jms/"
    >
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/jms/" location="jmsAdapterInboundHeader.wsdl"/>
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" >
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/DBAPP/ADDEMPLOYEES/" schemaLocation="ADDEMPLOYEES.xsd" />
    </schema>
    </types>
    <message name="InputParameters_msg">
    <part name="InputParameters" element="imp1:InputParameters"/>
    </message>
    <portType name="Consume_Message_ptt">
    <operation name="Consume_Message">
    <input message="tns:InputParameters_msg"/>
    </operation>
    </portType>
    <binding name="Consume_Message_binding" type="tns:Consume_Message_ptt">
    <pc:inbound_binding />
    <operation name="Consume_Message">
    <jca:operation
    ActivationSpec="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec" DestinationName="java:comp/resource/OEMS/Topics/JMSUSER.JMSDEMO_TOPIC"
    UseMessageListener="false"
    PayloadType="TextMessage"
    OpaqueSchema="false" >
    </jca:operation>
    <input>
    <jca:header message="hdr:InboundHeader_msg" part="inboundHeader"/>
    </input>
    </operation>
    </binding>
    <service name="MySOAPoverJMS">
    <port name="Consume_Message_pt" binding="tns:Consume_Message_binding">
    <!--Your runtime connection is declared in
    J2EE_HOME/application-deployments/default/JMSAdapter/oc4j-ra.xml
    These mcf properties here are from your design time connection and
    save you from having to edit that file and restart the application server
    if eis/Jms/OEMS is missing.
    These mcf properties are safe to remove.-->
    <jca:address location="eis/Jms/OEMS" UIConnectionName="OEMS" ManagedConnectionFactory="oracle.tip.adapter.jms.JmsManagedConnectionFactory" mcf.ConnectionFactoryLocation="java:comp/resource/OEMS/TopicConnectionFactories/TCF"
    mcf.IsTopic="true"
    mcf.IsTransacted="true"
    mcf.FactoryProperties=""
    mcf.Username="jmsuser"
    mcf.Password="BE49B84750434652C21A27623F0F412D"
    UIJmsProvider="OJMS" />
    </port>
    </service>
    <plt:partnerLinkType name="Consume_Message_plt" >
    <plt:role name="Consume_Message_role" >
    <plt:portType name="tns:Consume_Message_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    But this contains no SOAP definition, so that i cannot use this with "new..."->"Webservice->Java Web Service from WSDL" to create the java code...
    Any ideas?

  • How to consume SOAP over JMS in OESB which is deployeed in Oracle 11g

    Oracle 11g Supports only JAX-RPC for SOAP over JMS i.e no  response queue configuration.
    I have to consume same web service in Oracle ESB ,
    Please let me know what configuration required in OESB's business service to consume .

    Hi Harshada,
    Any good reasons to integrate Share point Jquery mobile application with SMP ?
    because Share point web services can be consumed directly in the Jquery mobile applications.
    Please look at the below examples to achieve it.
    Sample Codes :
    Read List Items using Sharepoint Web Services and jQuery | Robert Kuzma on SharePoint,  HTML, CSS &amp;amp; JavaScript, …
    Pro-Grammar: Calling the SharePoint 2010 GetListItems web services with Jquery
    javascript - Getting list data from SharePoint 2010 site using Jquery - Stack Overflow
    -Virinchy

  • Accessing SOAP over JMS webservice

    Hi,
    From Webdynpro can I access a webservice which is using SOAP over JMS.
    Is there any example on it.
    Thanks.
    MS.

    I have similar situation.
    R/3->XI->java message server
    XI and message server exchange SOAP envelope using JMS. (SOAP over JMS)
    XI posts SOAP message in queue & in inbound case would pickup SOAP message from JMS queue.
    My question: When using a SOAP adapter, it does work of stripping SOAP envelope/ header? Do we need to handle it in xslt when a message is picked up from external message queue(from message server)? In other words how to handle SOAP message in inbound case?
    Thanks,
    sachin
    PS: Points will be awarded for useful answer

  • SOAP over JMS in OSB

    Hello!
    I've successfully created the following:
    (1) A Soap over JMS Endpoint using OSB.
    (2) A standalone Java Client to the above endpoint (using the weblogic.wsee.tools.anttasks.ClientGenTask tool).
    My first question is, am I limited to using the ClientGenTask tool for generating the Java Client? I tried using CXF but had problems running the generated code. Does anyone out there have experience of using other tools for generating the clients for these specific types of endpoints (Soap over JMS on OSB)?
    My second question is whether Soap over JMS is whether or not Soap over JMS will ever support JAX-WS on the OSB platform?
    Thanks for any help you chaps can give me!
    Mark.

    Hi Tirthankar
    I faced the same problem you'r describing in your post and found it while googling over the net.
    Could you share please what was your solution for this problem?
    Grealty thanx in advance for any inputs
    Sincerely
    Jabb.

  • SOAP over JMS binding

    Hi Experts,
    Is it possible to expose as a SOAP over JMS binding webservice from XI (from SAP platform)?
    Regards
    Sara

    I have similar situation.
    R/3->XI->java message server
    XI and message server exchange SOAP envelope using JMS. (SOAP over JMS)
    XI posts SOAP message in queue & in inbound case would pickup SOAP message from JMS queue.
    My question: When using a SOAP adapter, it does work of stripping SOAP envelope/ header? Do we need to handle it in xslt when a message is picked up from external message queue(from message server)? In other words how to handle SOAP message in inbound case?
    Thanks,
    sachin
    PS: Points will be awarded for useful answer

  • Webservice for soap with attachments

    HI
    I am try to develop webservice for soap with attachments for the sending images like jpg,tiff,gif.
    it works fine when I statically attach the file
    but when i pass dynamically the file name it will give me error for the call.invoke() method
    Following is the code and the error details
    I am using eclipse wtp2.0 and using weblogic appserver 8.1 and axis-1.4
    that is my configuration details.
    // This is my service code
    import java.io.File;
    import java.io.IOException;
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.MessagingException;
    import javax.xml.soap.AttachmentPart;
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.SOAPBody;
    import javax.xml.soap.SOAPBodyElement;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPPart;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPMessage;
    import org.apache.axis.Message;
    import org.apache.axis.MessageContext;
    import org.apache.axis.message.SOAPEnvelope;
    //import org.apache.axis.soap.MessageFactoryImpl;
    import com.sun.corba.se.spi.activation.Repository;
    public class AttachmentServer1
         SOAPMessage msg = null;
         Message response= null;
         FileDataSource fileSource;
         DataHandler dataHandler = null;
         MessageContext context = null;
              public void sendImage(String fileName) throws MessagingException, IOException{
              try {
                        //java.lang.System.setProperty("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
                        java.lang.System.setProperty("javax.xml.soap.MessageFactory","org.apache.axis.soap.MessageFactoryImpl");
                        MessageFactory fac = MessageFactory.newInstance();
                        msg = fac.createMessage();
                        context = MessageContext.getCurrentContext();
                        response = context.getRequestMessage();
                        if(msg != null){
                             System.out.println("From inside if statement");
                             //File f = new File("D:/1.png");
                             File f = new File(fileName);
                             fileSource = new FileDataSource(f);     
                             dataHandler =new DataHandler(fileSource);
                             System.out.println("From inside if statement 1");
                             AttachmentPart part = msg.createAttachmentPart(dataHandler);
                             System.out.println("From inside if statement part");
                             //part.setContentType("image/jpeg");
                             //part.setMimeHeader("Content-Type", "image/jpg");
                             //part.setContent(dataHandler, "image/jpg");
                             SOAPPart soapPart = msg.getSOAPPart();
                             javax.xml.soap.SOAPEnvelope envelope = soapPart.getEnvelope();
                             SOAPBody body = envelope.getBody();
                             SOAPBodyElement bodyElement = body.addBodyElement(envelope.createName("attach"));
                             SOAPElement element = bodyElement.addChildElement(envelope.createName("parent"));
                             System.out.println("From inside if statement 2");
                             part.setContentId("axis");
                             msg.addAttachmentPart(part);
                             element.addAttribute(envelope.createName("href"), part.getContentId());
                             System.out.println("From inside if statement 3");
                             msg.saveChanges();
                             System.out.println("From inside if statement 4");
                             System.out.println(part.getContentId());
                        }else
                             try {
                                  throw new Exception("Responce message is null");
                             } catch (Exception e) {
                                  // TODO Auto-generated catch block
                                  e.printStackTrace();
                   } catch (SOAPException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
    // This is the client code
    import java.io.File;
    import java.io.FileOutputStream;
    import java.util.Iterator;
    import javax.activation.DataHandler;
    import javax.xml.namespace.QName;
    import javax.xml.soap.AttachmentPart;
    import javax.xml.soap.SOAPBody;
    import javax.xml.soap.SOAPException;
    import org.apache.axis.Message;
    import org.apache.axis.MessageContext;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.message.SOAPEnvelope;
    public class AttachmentClient {
         public static void getImage(){
              try{
                   String endPoint = "http://localhost:7001/Test/services/AttchmentServer";
                   Service service = new Service();
                   Call call = (Call)service.createCall();
                   call.setOperationName(new QName("sendImage"));
                   call.setTargetEndpointAddress(endPoint);
                   call.setUseSOAPAction(true);
                   call.invoke(new Object[] {});
                   MessageContext context = call.getMessageContext();
                   Message msg = context.getCurrentMessage();
                   Iterator obj = msg.getAttachments();
                   while(obj.hasNext()){
                        try{
                             AttachmentPart part = (AttachmentPart) obj.next();
                             File graphFile = new File("test.jpg");
                             FileOutputStream outputStream = new FileOutputStream(graphFile);
                             DataHandler dataHandler = part.getDataHandler();
                             if(dataHandler != null){
                                  dataHandler.writeTo(outputStream);
                                  outputStream.flush();
                                  System.out.println("File Saved at:"+graphFile.getAbsolutePath());
                             }else{
                                  System.out.println("null");
                        }catch(Exception e){
                             e.printStackTrace();
              }catch(Exception e){
                   e.printStackTrace();
         public static void main(String args[]) throws SOAPException
              getImage();
    // The error is something like that
    - Exception:
    java.lang.RuntimeException: javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.
    faultActor:
    faultNode:
    faultDetail:
         {http://xml.apache.org/axis/}stackTrace:javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.
         at javax.mail.internet.InternetHeaders.load(InternetHeaders.java:122)
         at javax.mail.internet.InternetHeaders.<init>(InternetHeaders.java:93)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readTillFound(MultiPartRelatedInputStream.java:499)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readAll(MultiPartRelatedInputStream.java:433)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.getAttachments(MultiPartRelatedInputStream.java:439)
         at org.apache.axis.attachments.AttachmentsImpl.mergeinAttachments(AttachmentsImpl.java:171)
         at org.apache.axis.attachments.AttachmentsImpl.getAttachmentByReference(AttachmentsImpl.java:341)
         at org.apache.axis.encoding.DeserializationContext.getObjectByRef(DeserializationContext.java:617)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.populateDataHandler(JAFDataHandlerDeserializer.java:74)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.startElement(JAFDataHandlerDeserializer.java:59)
         at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
         at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
         at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
         at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
         at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
         at org.apache.axis.client.Call.invoke(Call.java:2467)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at AttachmentClient2.getImage(AttachmentClient2.java:27)
         at AttachmentClient2.main(AttachmentClient2.java:58)
         {http://xml.apache.org/axis/}hostname:solusoft18
    javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.
         at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readTillFound(MultiPartRelatedInputStream.java:609)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readAll(MultiPartRelatedInputStream.java:433)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.getAttachments(MultiPartRelatedInputStream.java:439)
         at org.apache.axis.attachments.AttachmentsImpl.mergeinAttachments(AttachmentsImpl.java:171)
         at org.apache.axis.attachments.AttachmentsImpl.getAttachmentByReference(AttachmentsImpl.java:341)
         at org.apache.axis.encoding.DeserializationContext.getObjectByRef(DeserializationContext.java:617)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.populateDataHandler(JAFDataHandlerDeserializer.java:74)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.startElement(JAFDataHandlerDeserializer.java:59)
         at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
         at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
         at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
         at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
         at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
         at org.apache.axis.client.Call.invoke(Call.java:2467)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at AttachmentClient2.getImage(AttachmentClient2.java:27)
         at AttachmentClient2.main(AttachmentClient2.java:58)
    Caused by: javax.mail.MessagingException: Error in input stream;

    Hi David,
    The "covert byte[] to a base64 encoded string" solution, is probably your best
    bet given the scenario you described.
    Regards,
    Mike Wooten
    "David Ruana" <[email protected]> wrote:
    >
    Weblogic 6.1 (SP2) does not support SOAP with attachments. In the meanwhile,
    what
    is the best approach in order to send a SOAP message which has binary
    data?
    My EJB is currently receiving a byte[] and returning also a byte[]. The
    only solution
    I can think of right now is to convert the byte[] into a String in base64
    format.
    Would you recommend that?
    Thanks in advance.

  • Error generating WebServices thro' Axis

    Hi , On generating webservices for a simple program ( which add's two integer) I am getting following error in client side -
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
    faultSubcode:
    faultString: java.lang.InstantiationException: com.infosys.WebService.WebServiceProcessor
    faultActor:
    faultNode:
    faultDetail:
    {_http://xml.apache.org/axis/}stackTrace:java.lang.InstantiationException_: com.infosys.WebService.WebServiceProcessor
    at org.apache.axis.message.SOAPFaultBuilder.createFault(_SOAPFaultBuilder.java:222_)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(_SOAPFaultBuilder.java:129_)
    at org.apache.axis.encoding.DeserializationContext.endElement(_DeserializationContext.java:1087_)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(_DeserializationContext.java:227_)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(_SOAPPart.java:696_)
    at org.apache.axis.Message.getSOAPEnvelope(_Message.java:435_)
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(_MustUnderstandChecker.java:62_)
    at org.apache.axis.client.AxisClient.invoke(_AxisClient.java:206_)
    at org.apache.axis.client.Call.invokeEngine(_Call.java:2784_)
    at org.apache.axis.client.Call.invoke(_Call.java:2767_)
    at org.apache.axis.client.Call.invoke(_Call.java:2443_)
    at org.apache.axis.client.Call.invoke(_Call.java:2366_)
    at org.apache.axis.client.Call.invoke(_Call.java:1812_)
    at com.infosys.WebService.WebServiceProcessorSoapBindingStub.addNumber(_WebServiceProcessorSoapBindingStub.java:108_)
    at com.infosys.WebService.WebServiceProcessorProxy.addNumber(_WebServiceProcessorProxy.java:50_)
    at com.infosys.WebService.WebTest.main(_WebTest.java:16_)
    Can anybody giude as what may be the problem?The server side Implementation class can be instantiated.

    Hi,
    Class WebServiceProcessor is an interface for the webservices. On instantiating its implementation class , it is thrwoing the above mentioned error in client side . Both cleint and server component is a part of Web Component and deployed in server , so those all should be in runtime classpath.
    Can you tell me exactly what I need to do here?

  • SOAP over JMS Problem

    I'm trying to call a SOAP over JMS Service form the BPEL process manager. For a simple example I use the Apache CXF example with Active MQ. The service has the following WSDL:
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:jms="http://cxf.apache.org/transports/jms" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://cxf.apache.org/jms_greeter" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:x1="http://cxf.apache.org/jms_greeter/types" name="JMSGreeterService" targetNamespace="http://cxf.apache.org/jms_greeter">
         <wsdl:types>
              <schema targetNamespace="http://cxf.apache.org/jms_greeter/types" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
                   <element name="sayHi">
                        <complexType/>
                   </element>
                   <element name="sayHiResponse">
                        <complexType>
                             <sequence>
                                  <element name="responseType" type="xsd:string"/>
                             </sequence>
                        </complexType>
                   </element>
                   <element name="greetMe">
                        <complexType>
                             <sequence>
                                  <element name="requestType" type="xsd:string"/>
                             </sequence>
                        </complexType>
                   </element>
                   <element name="greetMeResponse">
                        <complexType>
                             <sequence>
                                  <element name="responseType" type="xsd:string"/>
                             </sequence>
                        </complexType>
                   </element>
                   <element name="greetMeOneWay">
                        <complexType>
                             <sequence>
                                  <element name="requestType" type="xsd:string"/>
                             </sequence>
                        </complexType>
                   </element>
              </schema>
         </wsdl:types>
         <wsdl:message name="sayHiRequest">
              <wsdl:part name="in" element="x1:sayHi"/>
         </wsdl:message>
         <wsdl:message name="sayHiResponse">
              <wsdl:part name="out" element="x1:sayHiResponse"/>
         </wsdl:message>
         <wsdl:message name="greetMeRequest">
              <wsdl:part name="in" element="x1:greetMe"/>
         </wsdl:message>
         <wsdl:message name="greetMeResponse">
              <wsdl:part name="out" element="x1:greetMeResponse"/>
         </wsdl:message>
         <wsdl:message name="greetMeOneWayRequest">
              <wsdl:part name="in" element="x1:greetMeOneWay"/>
         </wsdl:message>
         <wsdl:portType name="JMSGreeterPortType">
              <wsdl:operation name="sayHi">
                   <wsdl:input name="sayHiRequest" message="tns:sayHiRequest"/>
                   <wsdl:output name="sayHiResponse" message="tns:sayHiResponse"/>
              </wsdl:operation>
              <wsdl:operation name="greetMe">
                   <wsdl:input name="greetMeRequest" message="tns:greetMeRequest"/>
                   <wsdl:output name="greetMeResponse" message="tns:greetMeResponse"/>
              </wsdl:operation>
              <wsdl:operation name="greetMeOneWay">
                   <wsdl:input name="greetMeOneWayRequest" message="tns:greetMeOneWayRequest"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="JMSGreeterPortBinding" type="tns:JMSGreeterPortType">
              <soap:binding style="document" transport="http://cxf.apache.org/transports/jms"/>
              <wsdl:operation name="greetMe">
                   <soap:operation soapAction="" style="document"/>
                   <wsdl:input name="greetMeRequest">
                        <soap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output name="greetMeResponse">
                        <soap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="sayHi">
                   <soap:operation soapAction="" style="document"/>
                   <wsdl:input name="sayHiRequest">
                        <soap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output name="sayHiResponse">
                        <soap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="greetMeOneWay">
                   <soap:operation style="document" soapaction=""/>
                   <wsdl:input name="greetMeOneWayRequest">
                        <soap:body use="literal"/>
                   </wsdl:input>
              </wsdl:operation>
         </wsdl:binding>
         <wsdl:service name="JMSGreeterService">
              <wsdl:port name="GreeterPort" binding="tns:JMSGreeterPortBinding">
                   <jms:address destinationStyle="queue" jndiConnectionFactoryName="ConnectionFactory" jndiDestinationName="dynamicQueues/test.cxf.jmstransport.queue">
                        <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
                        <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61616"/>
                   </jms:address>
                   <jms:clientConfig useConduitIdSelector="false"/>
              </wsdl:port>
         </wsdl:service>
    </wsdl:definitions>
    When trying to call the service i get the follwing errror:
    <messages>
    <input>
    <Invoke_2_greetMeOneWay_InputVariable>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="in">
    <greetMeOneWay xmlns="http://cxf.apache.org/jms_greeter/types">
    <requestType>
    sdfsdf!
    </requestType>
    </greetMeOneWay>
    </part>
    </Invoke_2_greetMeOneWay_InputVariable>
    </input>
    <fault>
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>
    Unable to find an available port
    </summary>
    </part>
    </bindingFault>
    </fault>
    </messages>
    When using a JMS Adapter Service i can access the queue without any problems.
    Any ideas? Thanks!

    Above all, really thank you for your precious help.
    I thought about resolving the problem with JMS because it was studied to resolve asynchronous message delivery, which is what I'm trying to achieve.
    So, I think I'll try the second solution you indicated. Let's see if I understood:
    1- my customer decides to send some messages he wants to send [to better understand, I'll call them SMS] through the interface I developed
    2- a new JMS Message is created
    3- a MDB wake up and performs the initial steps to connect throught native calls
    4- new MDB wake up and, using the connection, send created SMS
    5- another process use the connection to read the StatusInd and create a new JMS Message to describe the message status
    My implementation doubt is that I must send a lot of SMS (around 4000 SMS in one action), so, in pass 4, should I create 4000 MDB instances? It should be a clean implementation, maybe this way I could use also correlation id/replyto headers in passage 5, but I would it waste many resources?
    And, also, how can I implement the "native calls"? Is there a way to create a class that support this proprietary protocol?
    And what about creating the connections with the server? Should I use java.net.socket?
    Really thank you,
    Andrea
    P.S.
    I'll look for implementing it using Arjuna+JBoss ;)

  • SOAP Over JMS, Add parameters

    Hi,
    I am working on JMS scenario in PI.I was able to push and pull message from IBM MQ message Queue.
    I need a solution on :-
    1. When i push a message in JMS queue can i add additional parameters like Interface ID or unique ID to the
    message?
    2. Using JMS sender when i pull a message i need to pick from queue based on an ID and once an id is picked i donot pick up the same message from the queue again.
    Do we have a adapter based seeting for the same? IS soap over JMS a work around on this?
    Please suggest.
    Anirban

    This link gives a good start for this - http://darwin-it.blogspot.com/2008/06/soap-over-jms.html

  • SOAP over JMS Sender Communication Channel - How to?

    Hello folks,
    I have an async. scenario in which a SOAP message is posted to a JMS queue, then SAP PI picks up the SOAP message, extracts the payload and maps it into an IDOC to SAP.
    Couple of questions...
    1. Does the JMS adapter supports SOAP over JMS?
    2. Can I get the entire SOAP envelope in SAP PI (just like the "do no use SOAP envelope" function works in the SOAP adapter) ?
    3. Is the above scenario possible? Given the fact that my scenario (i.e. ccBPM, mappings, etc..) is expecting a SOAP envelope as input?
    Thanks,
    Rob

    Ok, then I think I am on the right track, but still I cannot get this scenario to work.
    JMS (SOAP)-> SAP PI(ccBPM) --> IDOC
    I put SOAP messages on the sender queue, those messages dissapear from that queue, so I would expect that I can see them back in PI, but no trace is left behind in the monitoring area... It is like they've never been read from the input queue.
    What is happenning with those messages? The definition of the SOAP envelope has been uploaded as an external definition and linked to a message interface in the repository.
    JMS Communication channel checked but it is also fine.
    Any clues where to look?
    Thanks.

  • Asynchronous SOAP over JMS

    Is it possible to expose an operation type of "Process Notification" using SOAP over JMS? When you select the Process Web Service option on the process it only allows you to define SOAP over HTTP web services. It's possible to invoke one-way SOAP over JMS web services but I cannot find a way of exposing a BPM process (or process notification) as a one-way SOAP over JMS web service.
    Thanks in advance

    There is not a way to use JMS instead of HTTP to expose the process notifications. You would need to create a JMS listener, parse the soap message, and then notify the instance (using correlations probably) from within the global.
    Creating JMS listeners is not hard to do. Let me know if you need help with that.
    HTH,
    Mark

  • SOAP over JMS

    Hi All,
    I have been researching sending SOAP messages over JMS (instead of HTTP) and know all about the pro's and contra's.
    For those interested, her eare some excellent links on the topic:
    http://blogs.ittoolbox.com/eai/business/archives/web-services-http-vs-jms-19110
    http://dev2dev.bea.com/blog/pdone/archive/2007/03/using_soap_over.html
    http://www.webservices.org/categories/development/java/asynchronous_web_services_and_the_enterprise_service_bus/(go)/Articles
    http://webservices.sys-con.com/read/114115.htm
    I am aware that this hasn't been standardised and vendors implement their own prprietary way. IBM Websphere and BEA, for example, have done this. I don't think JCAPS has done this.
    BUT, is there a way to get it working using JCAPS anyway?
    Thanks for any feedbakck/insights/help...
    Kind regards,
    Stijn.

    Hi Stijn,
    it's pretty definitive this is going to be in JCAPS 5.2.0, and maybe will be introduced back into 5.1.3 in a rollup ESR.
    For intermediate solutions, you can just sent messages over JMS and handle the SOAP message format via importing the SOAP XSD and generating an OTD from that so the JCD handles the SOAP Envelope serialization actions. ( http://dev.w3.org/cvsweb/2002/ws/desc/wsdl12/wsdl12-soap.xsd?rev=1.10&content-type=text/x-cvsweb-markup ) .
    For the sending / receiving clients, please look at https://jmsjca.dev.java.net/ which provides the JMS Resource Adapters for STCMS.
    A commonly used pattern for scalable Web Services, is to forward them to a JMS Queue at receipt. If it's a synchronous call you can use JMS Request Reply.
    Hope this helps
    Paul

  • How to generate WebServices for PL/SQL Packages

    I have the following issue trying to generate WS for a selected set of operations within a PL/SQL package
    If I use the option -sql PKG_TEST then I am getting all operations within a package.
    I just want to expose a certain number of procedures ( e.g. PROC1 and PROC2 )
    It works only if I specify
    -sql PKG_TEST(PROC1)
    when I use -sql PKG_TEST(PROC1, PROC2) it gives me errors.
    I have Oracle JDeveloper (10.1.3.2) (Build 4066) .
    I used wsa with an plsqlAssemble option
    java -jar wsa.jar -plsqlAssemble
    -appName myApp
    -packageName myPckg
    -sql PKG_TEST(PROC1)
    -dataSource jdbc/ds
    -dbConnection jdbc:oracle:thin:@zzzz:1521:mydb -dbUser user/passw
    -style rpc
    -use literal
    Thanks,
    Michael Hitrik

    Eric,
    Thanks a lot for your help.
    I was able to follow all of your recommendations
    I was able to produce the single ear file for multiple PL/SQL packages .
    Now I have the last step ( I hope :-) - WS-SECURITY
    What is your recomendation for Security - specifically for WebServices for PL/SQL Packages ?
    I would like to do the following:
    CLIENT CODE:
    * Create a XML element with user name, password, &
    * datasource as child elements.
    * Element will look like this:
    * <credetials>
    * <username>scott</username>
    * <password>tiger</password>
    * <datasource>jdbc/OracleCoreDS</datasource>
    * </credentials>
    Document doc = new XMLDocument();
    Element elAdd = doc.createElement( "credentials");
    Element elA = doc.createElement( "username");
    Element elB = doc.createElement("password");
    Element elC = doc.createElement("datasource");
    elA.appendChild(doc.createTextNode("scott"));
    elB.appendChild(doc.createTextNode("tiger"));
    elC.appendChild(doc.createTextNode("jdbc/OracleCoreDS"));;
    elAdd.appendChild(elA);
    elAdd.appendChild(elB);
    elAdd.appendChild(elC);
    doc.appendChild(elAdd);
    Element e = doc.getDocumentElement();
    // Create an intance of the proxy
    EmployeeProxy proxy = new EmployeeProxy();
    // Create a Header objecy
    Vector v = new Vector();
    v.add (e);
    Header hdr = new Header();
    hdr.setHeaderEntries(v);
    // Set the Header
    proxy._setSOAPRequestHeaders(hdr);
    SERVER CODE:
    public void processHeaders(Header header)
    throws java.io.IOException,
    oracle.xml.parser.v2.XSLException
    // Get all the Elements
    Vector entries = header.getHeaderEntries();
    Element e = (Element) entries.firstElement();
    System.out.println("Element received from SOAP header is: " );
    ((XMLElement)e).print(System.out);
    // Get independent nodes and retrieve node values.
    Node userNode;
    userNode = ((XMLNode)e).selectSingleNode("username");
    userName = ((XMLElement)userNode).getText();
    Node passwordNode;
    passwordNode = ((XMLNode)e).selectSingleNode("password");
    password = ((XMLElement)passwordNode).getText();
    Node dsNode;
    dsNode = ((XMLNode)e).selectSingleNode("datasource");
    datasourceName = ((XMLElement)dsNode).getText();
    System.out.println("User name is: " + userName);
    System.out.println("Password is: " + password);
    System.out.println("Datasource is: " + datasourceName);
    How can this be done with the generated code using wsa tool ?
    Any other suggestions ?
    Thanks,
    Michael

Maybe you are looking for