Configuring XI over JMS

Hi,
I would like to configure XI over JMS using Bea Weblogic's JMS support,
Can anybody suggest how do i go about doing it? I am new to XI.
Thanks,
vishnu

Hi,
The best place to start is the SAP online help documentation. Try these link for starters (you will see more links on the left navigation too).
http://help.sap.com/saphelp_nw04/helpdata/en/e8/01683c43e87845e10000000a11402f/frameset.htm
Another tip is that you can search SAP documentation directly from SDN in the search on the top left of the SDN site
I hope this helps,
Mike.

Similar Messages

  • Sending and receiving SOAP over JMS in XI

    Hai All,
    I am working on a scenario in which I have to send a SOAP message over JMS adapter to XI and receive again the SOAP message over the JMS adapter.
    Here my questions are:
    1.How can I configure the JMS adapter to get the SOAP messages into XI.
    Thanks in Advance
    Srikanth

    Hi,
    1. Get the WSDL of the soap message and send it as a payload to the JMS adapter including the SOAP envelope.
    OR
    2. You can create the structer of teh SOAP body and while sending it and receiving it you can use either XSLT or JAVA or ABAP mapping to add and remove the SOAP envelope. So you can send/receive them as a payload to the JMS adapter
    Regards,
    Prakash

  • 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 & 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

  • ClassCastException in my WS over JMS using JAX-RPC in WLS 10.3...

    Hi,
    I am developing a WS over JMS using JAX-RPC in WLS 10.3 (I tried both WLS 10.3.0 and 10.3.1). And when WLS is trying to marshal the response, it throws "ClassCastException":
    ava.lang.ClassCastException: org.tmforum.mtop.nrf.xsd.com.v1.EquipmentHolderEnumType cannot be cast to java.lang.String
    at com.bea.staxb.runtime.internal.StringTypeConverter.print(StringTypeConverter.java:45)
    at com.bea.staxb.runtime.internal.SimpleContentBeanMarshaller.print(SimpleContentBeanMarshaller.java:52)
    at com.bea.staxb.runtime.internal.RuntimeBindingProperty.getLexical(RuntimeBindingProperty.java:154)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeCharData(PushMarshalResult.java:639)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:413)
    at com.bea.staxb.runtime.internal.SimpleContentRuntimeBindingType.accept(SimpleContentRuntimeBindingType.java:46)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:400)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:400)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:400)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalTopType(PushMarshalResult.java:96)
    at com.bea.staxb.runtime.internal.MarshallerImpl.marshalBindingType(MarshallerImpl.java:302)
    at com.bea.staxb.runtime.internal.MarshallerImpl.marshalElement(MarshallerImpl.java:383)
    at weblogic.wsee.bind.runtime.internal.LiteralSerializerContext.marshalElement(LiteralSerializerContext.java:82)
    at weblogic.wsee.bind.runtime.internal.BaseSerializerContext.internalSerializeElement(BaseSerializerContext.java:197)
    at weblogic.wsee.bind.runtime.internal.BaseSerializerContext.serializeElement(BaseSerializerContext.java:128)
    at weblogic.wsee.codec.soap11.SoapEncoder.encodePart(SoapEncoder.java:322)
    at weblogic.wsee.codec.soap11.SoapEncoder.encodeReturn(SoapEncoder.java:228)
    at weblogic.wsee.codec.soap11.SoapEncoder.encodeParts(SoapEncoder.java:215)
    at weblogic.wsee.codec.soap11.SoapEncoder.encode(SoapEncoder.java:134)
    at weblogic.wsee.codec.soap11.SoapCodec.encode(SoapCodec.java:134)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.encode(CodecHandler.java:104)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.handleResponse(CodecHandler.java:51)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:287)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:271)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.callHandleResponse(ServerDispatcher.java:341)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:189)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.jms.JmsWebservicesMessageDispatcher.dispatchMessage(JmsWebservicesMessageDispatcher.java:175)
    at weblogic.wsee.server.jms.JmsQueueListener.processMessage(JmsQueueListener.java:397)
    at weblogic.wsee.server.jms.JmsQueueListener.onMessage(JmsQueueListener.java:392)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5096)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    The "EquipmentHolderEnumType" is generated JAXB object (obviously it is not a String) from WSDL using WLS wsld generation. And here is how that Enum is defined in XSD:
    <xsd:simpleType name="EquipmentHolderEnumType">
    <xsd:annotation>
    <xsd:documentation>
    <p>Equipment holder type</p>
    </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="MINOR_EXT"/>
    <xsd:enumeration value="rack"/>
    <xsd:enumeration value="shelf"/>
    <xsd:enumeration value="sub_shelf"/>
    <xsd:enumeration value="slot"/>
    <xsd:enumeration value="sub_slot"/>
    <xsd:enumeration value="remote_unit"/>
    <xsd:enumeration value="remote_slots"/>
    </xsd:restriction>
    </xsd:simpleType>
    My question is why WLS is trying to cast the EnumType to String when marshalling it? How can I fix this exception?
    Also, second question: my WS will take some time to get the response ready (1+ minute). I was using WLS console test client to test my WS. And the test client always got time out:
    java.io.IOException: Request timed out
    at weblogic.wsee.connection.transport.jms.JmsTransport.receive(JmsTransport.java:356)
    at weblogic.testclient.WebServiceOperation.invokeJms(WebServiceOperation.java:463)
    at weblogic.testclient.WebServiceOperation.addWeblogicHeadersAndInvoke(WebServiceOperation.java:382)
    at weblogic.testclient.WebServiceOperation.invokeComplex(WebServiceOperation.java:305)
    at weblogic.testclient.WebServiceOperation.invoke(WebServiceOperation.java:626)
    How can I configure the WLS console test client so that I can increase teh timeout setting for the client?
    Thank you very much!
    Jian

    Hi, pls how did you solve your problem exatly? Because I have similar problem without solution.
    I have WSDL contract like:
    <xs:element name="duration">
    <xs:complexType>
    <xs:simpleContent>
    <xs:extension base="durationType">
    <xs:attribute name="days" type="xs:int" use="optional"/>
    </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
    </xs:element>
    <xs:simpleType name="durationType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="PERIODIC"/>
    <xs:enumeration value="PERPETUAL"/>
    <xs:enumeration value="CREDIT_DAYS"/>
    </xs:restriction>
    </xs:simpleType>
    And client site generated by WLS ant task "generate-from-wsdl" with "JAXRPC" option and when I use calling of this client and exeption was appeared:
    FaultString [com.company.DurationType] FaultActor [null] Detail [<detail><java:string>java.lang.ClassCastException: com.company.DurationType</java:string></detail>];
    Note: all other messages are correct.
    thx

  • JMX over JMS

    Any one has any experience in connecting MBean servers to Sun MQ. Specifically with Lingo framework...(http://lingo.codehaus.org/JMX+over+JMS).
    Thanks,
    -Uday.

    My understanding is that MBean servers are the containers within the manageable application (eg MQ broker/server VM) that house the manageable resources (ie JMX MBeans) that is exposed to management applications. These MBeans are what defines what can be managed/configured. If an application does not have an MBean Server in it or specific MBeans to do management, than JMX management applications cannot monitor it.
    As of MQ 4.1, the MQ broker has JMX support ie it has an MBean Server that contains a bunch of MBeans for management.
    So, I'm not sure what you mean by "connecting MBean Servers to Sun MQ". An MBean Server already exists within the MQ broker VM.
    Management applications (written in JMX), can connect to the MBean server in MQ brokers (and therefore access the MBeans) via various connection protocols, the default (and only supported one for MQ) being RMI.
    Lingo allows you to plug in a different connection protocol - one based on JMS, which is also implemented by Lingo. It does not look like you can use Lingo plus any other JMS provider - you need to use Lingo's JMS support. This is my understanding from high level browsing of Lingo's website.
    Since MQ (like Lingo) is also a JMS provider, I think it is worthwhile to ask (for clarification):
    - what version of MQ are you using ? (are you using an older version that does not have JMX support ?)
    - any reason why you cannot use the default RMI protocol ?
    - are you asking if one can use Lingo plus MQ as the JMS provider ?
    - are you asking if one can connect to (ie manage/monitor) the MQ broker using Lingo and it's own JMS provider ?
    Sorry for long winded reply - unless I'm missing something (apologies if this is the case), it looks a bit awkward to monitor/manage a JMS provider (ie MQ) that has built in JMX management (unless you're using an older version of MQ) using yet another JMS based connection protocol (ie Lingo).
    I haven't tried it but from looking at Lingo documentation, I don't think you can use Lingo to monitor/manage a MQ broker because a special Lingo connector needs to be setup from within the MQ broker's MBean Server.
    Once again - apologies if I've misunderstood anything - please fill me in if this is the case.
    regards,
    -isa

  • Submit order using Webservice over JMS

    Hi,
    from the SDK samples(webservice sample) and from one of the reply from the forum:
    The wlsmimehdrContent_Type JMS header must be set to the following value: text/xml; charset="UTF-8"
    The URI JMS header must be set to the following value: /osm/wsapi
    Want to test webservice over JMS using SOAP UI (that supports HermesJMS):
    I have configured HermesJMS then configured SoapUI 4.0 by adding endpoint as JMS then selected webserive endpoint as JMS:osm_ws_request (long name) instead of "http://localhost:7001/osm/wsapi".
    Now for JMS endpoint where to add webservice URI "/osm/wsapi" unable to figure out where to add URI (in SOAPUI or HermesJMS) which parameter need to set for webservice URI?
    Regards,
    Rutvej

    Hi,
    Above query is resolved..
    Cheers,
    Rutvej

  • How to configure a full JMS Sender Adapter Scenario

    Hi guys,
    I have to do a JMS -> PI (7.1) -> File scenario, I never used JMS Adapter, and I'd like to tell you what I have done, and what I think is missing.
    First I went to the NetWeaver Administrator ->Configuration Management ->Infrastructure ->JMS Server Configuration-> Create ->JMS Queue.. and I created a new Queue from a Virtual Provider (SAP JMS Provider).
    The first thing I didn't know how to configure it is which transport protocol I have to choose in the CC adapter (SonicMQ JMS Provider, WebSphere MQ, etc..)
    But I also don't know is if there's something missing on the NWA, to create, modify, etc. I read this slide: (https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a05b2347-01e7-2910-ceac-c45577e574e0) where was shown how to create a SAP standard queue, and I also read all the documentation from help.sap.com (all the JMS basics and explanation) but I still don't know how to fully configure the CC and how to trigger the messages.
    Please, if you need further information I can give it.
    Thanks in advance.
      Juan

    Hi,
    did you try this blog from William?
    /people/william.li/blog/2006/11/13/how-to-use-saps-webas-j2ees-jms-queue-in-exchange-infrastructure
    Regards,
    Michal Krawczyk

  • Dynamic configuration bean in JMS Adapter

    Hello Experts,
    My scenario is JMS(Active MQ) to File.Its just Passthrough scenario and no mapping involved.
    Filename will be coming in one of the JMS Property (say businessId) and I need to set this filename to file adapter.
    I have refered the stefan's blog and used the Dynamic configuration bean module in sender JMS adapter.
    getFilename key.1 write http://sap.com/xi/System/JMS DCJMSMessageProperty4
    getFilename value.1 module.filename
    setFilename key.1 read http://sap.com/xi/System/File FileName
    setFilename value.1 module.filename
    But required filename is not populated in the target File.Any other configuration is missing here?

    Hi Karthiga
    Did you set the ASMA properties in both your sender JMS channel and receiver File channel?
    For the JMS adapter, as shown below, you will need to enter the DCJMSMessageProperty4 into the table
    Configuring the Sender JMS Adapter - Configuring the JMS Adapter in the Integration Directory/PCK - SAP Library
    If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 10).
    In the table, enter the names of the JMS message properties whose values are to be included in the message header of the PI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    For the File adapter, you need to check the ASMA FileName attribute.
    Once you have this configured, in your message, you should be able to see that the value is in the DynamicConfiguration section of the SOAP header.
    Rgds
    Eng Swee

  • 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?

  • Error: Invalid configuration for the JMS adapter

    Hi!
    I'm doing a test with CEP to get messages from a JMS WebLogic queue but I'm getting the following error:
    <BEA-2045010> <The application context "Teste" could not be initialized: org.springframework.beans.FatalBeanException: Error in initialization context lifecycle; nested exception is java.lang.IllegalArgumentException: Invalid configuration for the JMS adapter, you must Bean or specify a converter or a type of event.
    Teste.context.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:osgi="http://www.springframework.org/schema/osgi"
    xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
    xmlns:jdbc="http://www.oracle.com/ns/ocep/jdbc"
    xmlns:spatial="http://www.oracle.com/ns/ocep/spatial"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/osgi
    http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://www.bea.com/ns/wlevs/spring
    http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd
    http://www.oracle.com/ns/ocep/jdbc
    http://www.oracle.com/ns/ocep/jdbc/ocep-jdbc.xsd
    http://www.oracle.com/ns/ocep/spatial
    http://www.oracle.com/ns/ocep/spatial/ocep-spatial.xsd">
         <wlevs:event-type-repository>
              <wlevs:event-type type-name="Pet">
                   <wlevs:class>testewithprotobuf.MyPet$Pet</wlevs:class>
              </wlevs:event-type>
         </wlevs:event-type-repository>
         <wlevs:adapter id="pet_messageAdapter" provider="jms-inbound">
              <wlevs:listener ref="pet_inputChannel" />
              <wlevs:instance-property name="converterBean"
                   ref="PetMessageConverter" />
         </wlevs:adapter>
         <wlevs:channel id="pet_inputChannel" event-type="Pet">
              <wlevs:listener ref="pet_messageProcessor" />
         </wlevs:channel>
         <bean id="PetMessageConverter" class="testewithprotobuf.PetMessageConverter" />
         <bean id="PetBean" class="testewithprotobuf.PetBean" />
         <wlevs:processor id="pet_messageProcessor">
              <wlevs:listener ref="pet_outputChannel" />          
         </wlevs:processor>
         <wlevs:channel id="pet_outputChannel" event-type="Pet">
              <wlevs:listener ref="PetBean" />
         </wlevs:channel>
    </beans>
    My converter class:
    import java.util.Collections;
    import java.util.List;
    import javax.jms.BytesMessage;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import testewithprotobuf.MyPet.Pet;
    import com.bea.wlevs.adapters.jms.api.InboundMessageConverter;
    import com.bea.wlevs.adapters.jms.api.MessageConverterException;
    import com.google.protobuf.InvalidProtocolBufferException;
    public class PetMessageConverter implements InboundMessageConverter {
         @SuppressWarnings("rawtypes")
         @Override
         public List convert(Message message) throws MessageConverterException,
                                                                JMSException {
              BytesMessage bytesMessage = (BytesMessage) message;
              long bodyLen = bytesMessage.getBodyLength();
              byte[] buffer = new byte[(int) bodyLen];
              bytesMessage.readBytes(buffer);
              try {
                   Pet pet = Pet.parseFrom(buffer);               
                   return Collections.singletonList(pet);
              } catch (InvalidProtocolBufferException e) {
                   throw new MessageConverterException(e);
    Please, what's wrong?
    Thanks!

    This error usually indicates that you have both event type and converter bean specified or neither specified. In your case, that doesn't appear to the case from looking at the spring file. Could you also paste the contents of your configuration file from META-INF/wlevs directory?

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

  • 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

  • Two short Soap over JMS questions

    Hello everybody,
    ís it possible to call a SOAP Service over JMS with the Oracle BPEL Process Manager, when the SOAP Service uses a "non-Oracle" queue (e.g. Apache ActiveMQ)?
    Is the schema for the namespace "http://www.oracle.com/technology/oracleas/wsdl/jms" or documentation for the elements <jms:address> and <jms:propertyValue> available somewhere?
    Thank you for your time.

    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.

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

Maybe you are looking for