Store-and-forward SOAP messaging in JAX-RPC ??

JAXM seems dead (although SAAJ lives and is very useful). I want to implement a store-and-forward SOAP messaging system for EAI and give it a Java API. Can I do this in JAX-RPC? Does it make any sense?
Thanks,
Mark

At Java One they were advocating the use of web services over JMS.

Similar Messages

  • Does JMS support reliable messaging (store-and-forward) for app clients?

    I need to write an enterprise application client (launched with Java web start or packaged with a tool like Sun's package-appclient) that can send messages reliably from Linux to Windows. JMS seems like the obvious solution, so I deployed an EAR file with an MDB and an application client on a Windows machine (running SJSAS 9). I was able to download the client jar file onto Linux and send JMS messages successfully. However, if the Windows machine is not available, the Linux client immediately throws exceptions and fails. Are there any JMS providers that provide a store-and-forward mechanism for enterprise clients, so that if the remote server is not available immediately, messages are delivered later? (Note that the client can't be a servlet or other server-managed component.)
    I'd prefer an open-source solution, but this requirement has an extremely high priority for my customer, so I'll use a commercial product if necessary. And if there's something other than JMS that works, that would be fine. (In my case, the messages on the remote side ultimately go to a .NET service, so WS-ReliableMessaging would be ideal, but it looks WS-RM won't be integrated into .NET until Vista, and the current WS-RM implementation is a beta, etc., etc.)
    Thanks,
    Mike

    You could use Apache ActiveMQ
    http://incubator.apache.org/activemq/
    which supports embedded brokers inside each JVM which can be networked together in a store-forward mechanism so that each application keeps working and store-forwarding messages.
    http://incubator.apache.org/activemq/networks-of-brokers.html
    or you can use failover transport to handle automatic reconnection...
    http://incubator.apache.org/activemq/how-can-i-support-auto-reconnection.html
    If you need to communicate with some .Net you can use the NMS - the .Net Messaging API which has a client for ActiveMQ as well...
    http://incubator.apache.org/activemq/nms.html
    James
    http://logicblaze.com/
    Open Source SOA

  • How to bind soap header using jax-rpc

    To Whom It May Concern:
    I am using Rad7, Ibm Websphere 6.1, on Windows XP.
    I created an SoapHeader first using a string and bind it using jax-ws.
    It works for jax-ws but unfortunately, my work services uses jax-rpc.
    Does anybody know how to bind the soap header using jax-rpc.
    Any help or hint would be greatly appreciated it.
    Here is my code:
    import org.apache.cxf.headers.Header;
    import org.apache.cxf.headers.Header.Direction;
    import org.apache.cxf.helpers.DOMUtils;
    import org.apache.cxf.binding.soap.SoapHeader;
    import javax.xml.namespace.QName;
    import java.io.StringReader;
    import java.util.List;
    import java.util.ArrayList;
    import javax.xml.ws.BindingProvider;
                   @Test
         public void testService() throws Exception {     
                   try
                        URL wsdlURL = new URL("http://localhost:9087/abc/services/ServiceABCService");
                        ServiceRequestServiceService service = new ServiceRequestServiceServiceLocator();
                        ServiceRequestService port = service.getServiceRequestService(wsdlURL);
                   //How to Add Soap Header using jax-ws
              String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><ABCHdrRq "
              + "xmlns=\"http://xmlns.ABCgc.net/ABC/2002/header/\" "
              + ">"
              + "<version>1.0</version><srcInfo><chType>abc</chType><chInst>0124</chInst>" +
                        "<appName>sSAR</appName><hostName>DW70210521</hostName><userId>fxue</userId>" +
                        "</srcInfo><startTimeStamp>2010-06-04T13:44:45.132</startTimeStamp><clientDt>2010-06-04T13:44:53.242</clientDt><serviceInfo><serviceName>ServiceRequestService</serviceName>" +
                        "<serviceFunc>addServiceRequest</serviceFunc></serviceInfo>" +
                   "<prevTransInfo><prevRqUID>BORS2010-06-04T13:41:10.2067f9368d1-8c5c</prevRqUID>" +     
                   "<prevRespTimestamp>2010-06-04T13:41:10.871</prevRespTimestamp>"+
                   "<prevRespEndTimestamp>2010-06-04T13:41:10.902</prevRespEndTimestamp>+</prevTransInfo>"+
                   "</ABCHdrRq>";
              SoapHeader dummyHeader1 = new SoapHeader(new QName("uri:http://xmlns.ABCgc.net/ABC/2002/header/", "ABCHdrRq"),
              DOMUtils.readXml(new StringReader(xml)).getDocumentElement());
              dummyHeader1.setDirection(Direction.DIRECTION_OUT);
              List<Header> headers = new ArrayList<Header>();
                   headers.add(dummyHeader1);
                   ((BindingProvider)port).getRequestContext().put(Header.HEADER_LIST, headers);
                   //How to Add Soap Header to the request using jax-ws
                   catch(Exception e)
                        System.out.println("Exception message:"+e.getMessage());
    Yours,
    Frustrated

    Well, how an attachment is processed depends on your application logic...if your application logic requires to processing attachments and verify it before processing the SOAP message, handlers could be better option.
    If you need to process the attachment while processing the SOAP message, you can do it in the service implementation class.
    In both the cases you need to get access to SOAPMessage object and from there get the attachments with getAttachments method.

  • HT3529 Is there a way to create, store and use preset messages for use with "Messages"?

    Is there a way to create, store and use preset messages for use with "Messages". I often have a recurrinig message to send, after a repeating event, and need to enter the same short message each time. It would be nice to have this short message stored and selectable so that I do not need to enter each time.

    found an answer that seems to work:
    https://discussions.apple.com/message/17997300#17997300

  • How To : Call External Webservice from BPEL and pass SOAP Message to the WS

    Hello All-
    Greetings to all BPEL gurus. I am currently facing difficulties in calling an External Webservice from my BPEL Process and passing SOAP Message to it. The details are below:
    <strong>1. The BPEL process, using database polling feature of DB Adapter, will get the records from the database.</strong>
    <strong>2. Transform the message</strong>
    <strong>3. Call the External Webservice and pass the transformed message as the input to it. However the Webservice expects the BPEL process to send SOAP headers in the input message.</strong>
    I am struggling on how to put the transformed message within a SOAP envelope in the BPEL process.
    If anyone had similar requirements and have successfully been able to send SOAP messages from BPEL process to an external webservice, kindly let me know.
    Also if there is some kind of documentation or any link in the forum that I can refer, please let me know that as well.
    I am new to Webservice integration using BPEL and would really appreciate your help.
    Thanks In Advance
    Regards,
    Dibya

    Hi Dharmendra,
    I am trying to send a SOAP message from my BPEL process to a web service. I have a complete SOAP message in a complex variable defined in the wsdl for the partnerlink (web service). My problem is that when I invoke the partnerlink it fails even though the content shown in the BPEL console looks valid.
    I have set up obtunnel to see what I am actually sending out from BPEL. You mention that BPEL creates the SOAP envelope automatically.
    I think that my problem is a result of this automatic SOAP envelope that BPEL is creating. Do you know if there is a way to turn it off?
    This is what I see in the TCP monitor, please note the double SOAP env:Body:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <env:Body> <RCMR_IN000002NR01 xmlns="urn:hl7-org:v3" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <env:Header>
    <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://testhost/CCS/Service_Endpoint</wsa:To>
    <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <wsa:Address>http://localhost/CCS/Service_Endpoint</wsa:Address>
    <wsa:Metadata>
    <device xmlns:hl7="urn:hl7-org:v3">
    </device>
    </wsa:Metadata>
    </env:Header>
    <env:Body>
    <RCMR_IN000002NR01>
    </RCMR_IN000002NR01>
    </env:Body>
    </RCMR_IN000002NR01>
    </env:Body>
    </env:Envelope>
    Any help is appreciated.
    Regards,
    Aagaard
    Edited by: Aagaard on Oct 30, 2008 8:59 PM
    Should have mentioned. I am using BPEL 10.1.3.4
    Edited by: Aagaard on Oct 31, 2008 8:43 AM
    I have opened a new thread for this question so as to not confuse the issue more than necessary.
    How many SOAP envelopes do you really need?

  • How to store and retrieve XML messages in AQ using ESB/ BPE

    Hello,
    I am having a requirement which I feel should be fairly common - store and retrieve XML messages in AQ. However, I am struggling to decide which type of queue to use AQ or JMS...Here is the requirement
    1. In an ESB, I want to read different kind of files using file adapter. Different kind as in, having different structure or schema
    2. I want to create a queue that is capable of storing any kind of xml data. To this queue, I want to enqueue the message read in step 1.
    3. In another process, say a BPEL, I want to dequeue the message and write into a file. The filename is retrieved from one of the header properties. I want to dequeue using a stored procedure, not by using a JMS or AQ Adapter (reason being that these adapters poll the queue, and consume a message immediately. However, I want to consume the message only when there is a business need)
    My questions are:
    1. What kind of queue I should create in the DB (What should be its payload type...XMLType? )... I guess the answer would also determine the adapter to be used - JMS or AQ
    2. How I should map the xml data read from the file in step 1 to this adapter
    Any help is highly appreciated.

    You are right in suggesting that I dont need to store my XML data as xml in the DB...I dont want to too :) but its just that, thats the only option I can see at this time (the other track i am exploring is :
    File adapter(XML) -&gt; Convert to opaque (base64binary) -&gt; Enqueue opaque to JMS (aq$_jms_bytes_message) -&gt;Dequeue Opaque -&gt; Write file opaquely.
    In this I have hit the roadblock in trying to convert XML to base64binary...maybe some custom java function is needed...anyway)
    Coming back to this thread, where I am trying the following
    File adapter(XML)  -&gt; Enqueue as XML to queue  -&gt;Dequeue XML -&gt; Write file opaquely.
    PS: I think its important for me to mention that I am using SOA 10.1.3.1.0
    I tried the steps you gave...after creating the queue, I am trying to create a JMS adapter. But the queue I created doesnt show up in the browse window of destinations for the JMS Adapter..That had led me to infer that JMS adapter cant be used
    {color:#99cc00}CREATE OR REPLACE TYPE batchupdate_row_type AS OBJECT
    (update_queue_id NUMBER
    ,upc VARCHAR2(20)
    ,price1 NUMBER);
    {color}
    {color:#99cc00}CREATE OR REPLACE TYPE batchupdate_rec_type AS VARRAY(9999999) OF batchupdate_row_type;
    CREATE OR REPLACE TYPE payload_type AS OBJECT ( payload batchupdate_rec_type);
    EXECUTE DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table =&gt; 'jmsuser.batch_update_queue_table', queue_payload_type =&gt; 'payload_type');
    EXECUTE DBMS_AQADM.CREATE_QUEUE ( queue_name =&gt; 'batch_update_queue', queue_table =&gt; 'jmsuser.batch_update_queue_table');
    EXECUTE DBMS_AQADM.START_QUEUE ( queue_name =&gt; 'batch_update_queue'); {color}
    I also needed some opinion on whether the last step of my proposed solution ( Dequeue XML -&gt; Write file opaquely) is possible. As I want to develop a service oblivious of the structure of the file, I dont want to create a file adapter based on a particular xsd...so I want to write whatever xml I am getting from the queue....is this step possible

  • Store and Forward agent configuration in jms adapter - jdeveloper

    I am created the store and forward (SAF) agent in weblogic to communicate with another weblogic server.
    after creating it i tried to configure it in jms adapter wizard but i can't able see my SAF Queue there.
    so now how can i give payload to my SAF queue for testing it.
    Please provide any suggestions, i will provide with the points.
    Thanks,
    Ajay Athuluri

    So I don't know much of the details of AIA, and next to nothing of the pre-built integrations, so can't help you much there. However are you sure you've got all the requisite SAF configuration right? The JMS and SAF component hierarchies are a real rats' nest of trouble. This is a setup I've found to work:
    * SAF Agent, targeted to a managed server; needs to use the default filestore (ie when configuring it you don't specify one)
    * JMS Module containing:
         * SAF Remote Context, pointing at your remote WLS instance
         * JMS SubDeployment, targeted to the SAF Agent
         * Connection Factory, targeted at the managed server
         * SAF Imported Destination, targeted at the SubDeployment
         * Queue in the Imported Destination, with WLS and JNDI names set up so they're different in the sending domain and receiving domain
    The pre-built integrations will (probably) have the JNDI names you need to configure in the documentation.
    HTH!
    Paddy

  • Store and Forward Azure Database?

    I'm working on mobile applications (Win Phone 8.1 and Win Store 8.1) that allows our internal crew members to clock-in, clock-out, and report daily work activities. This will be stored on Azure mobile databases, however, our users will be going out
    of mobile connectivity routinely, throughout the day.
    What would the best practice be to store and forward this data to allow them to continue working and then sync when they get back in the connectivity area?

    Hello,
    Did you want to use Windows Azure Mobile Services support offine data with mobile applications as Cotega post above?
    Azure Mobile Service SDK support mobile application store table operations in a local data store in offine, and later sync the changes to the mobile service when in connectivity again.
    Reference:
    Azure Mobile Services - Get Started with Offline
    Deep dive on the offline support in the managed client SDK
    Regards,
    Fanny Liu
    If you have any feedback on our support, please click here. 
    Fanny Liu
    TechNet Community Support

  • Store and Forward Switching

    Hello,
    Quick question, does a Cisco 3750 switch support store and forward switching? If so, is it default? If not, is there a command for it?
    I know the 3550's support S&F as default and if the 3750's do then it may resolve my issue.
    Thanks
    Wayne

    Thanks Bobby. In terms of raw switching is there any other differences between the 3550 and 3750?
    The reason I ask is I ran a BERT test on two pieces of equipment over a 3750 and it fails the test. Over a 3550 is passes.
    Both switches have an IP address for VLAN 1 and portfast and that's it, can't be simpler.
    I'm just wondering whether something is on as default on the 3550 but off as default on the 3750????????
    Many thanks,
    Wayne

  • Intercepting SOAP XML message in JAX-RPC Handler and calling a diff method

    Is it possible to intercept the SOAP XML message in the JAX-RPC handler and avoid the serialization and deserialization (OR avoid XML data binding)
    Here is a more detail question
    My web service has two methods
    1. One Method which accepts Java Object (this object is mapped with a Schema
    Complex Type Element in my WSDL file)
    2. Second method which accept simple String type.
    I want my web service client to send java object (using the first method), so that the Input gets validate in the WSDL itself (before it hits the actual web service) but once the request gets validated i want to pass that converted SOAP XML String (on the Server side using JAX-RPC handler) to the Second method.

    The answer to this is that the WSDL had
    elementFormDefault="qualified"
    in the schema.
    Changing to unqualified resulted in the desired output.
    Note: The service was changed to handle both cases.

  • How to pass SOAP Attachments with JAX-RPC Web Service

    I'm confused...
    This sample shows how to send/receive SOAP attachments by using the JAX-RPC Handler mechanism. Can somebody confirm if this is the preferred way to do this. I've seen an example wich does something like:
      public interface AttachmentService extends Remote {
        public String storeDocumentService(javax.activation.DataHandler dh, String filename) throws RemoteException;
      }and then uses JAX-RPC utilities to create wsdl, stubs and stuff. Does this have the same result, as what the OTN example shows (from an architecture perspective?
    Thx,
    Jan.

    Well, how an attachment is processed depends on your application logic...if your application logic requires to processing attachments and verify it before processing the SOAP message, handlers could be better option.
    If you need to process the attachment while processing the SOAP message, you can do it in the service implementation class.
    In both the cases you need to get access to SOAPMessage object and from there get the attachments with getAttachments method.

  • JWSDP1.4 Access the SOAP Message in an RPC server

    hi i am new to web services... i have created RPC using JSWDP 1.4.
    I used the wscompile and wsdeploy tool to create the WSDL and server side of the web service.
    but because of a requirement change now i have to get the SOAP message Header and verify the client details (log who is using my service). How can i access the SOAP header??

    Make a backup then edit this file,
    TomcatRoot: ./shared/classes/com/tarantella/tta/webservices/client/apis/Resources.properties
    Edit all locations to point to https://localhost:443

  • I'm trying to download Bioshock Infinite from the app store and get a message saying there isn't enough disc space; but the Bioshock support page says I only need 30G and I have 60 free on my hard drive

    Whoops, I think I should have posted my message here...Anyway, I'm trying to download Bioshock Infinite from the app store but get a message saying I don't have enough disc space.  The game requires 30 G and when I look at my internal hard drive it shows 60 G free. 
    What gives?

    Jenniferwood2829 wrote:
    ... so I don't understand why I still get this message when I show I have 15GB available in iCloud?
    It means you do not have enough Space on your Device and need to create More Space on Your Device by Deleting some items off your device.

  • WSE3.0 encrpyt and sign soap message together with disabled WSAdressing

    Good Morning,
    my task is to develop client´s applications written in .net4 who calls webservice (written by other- foreign firm in Java). My application, which calls webservice of other firm are: (plugin of MS CRM 2013, windowservice, windowformsapp for testing this communication)..
    I had to implement encrypt and sign comunication with this webservice by client and servers certifikate.
    I implemented this functions from:
    http://msdn.microsoft.com/en-us/library/aa528788.aspx
    and
    http://msdn.microsoft.com/en-us/library/aa529565.aspx
    by WSE 3.0.
    Now I have to implement to disable WSAdresing in soap messege. Is it possible to use encrypt and sign from WSE together with disabled WSadressing?
    (Other firm needs so as nodes of WSA will not be in soap message). With nodes WSAdresing in soap message, my communication with other webservice do not works. They (other firm) require no WSA nodes in soap message
    If it is posible, how to implement this functionality?

    Hi Matesak,
    I'm afraid this is not the most suitable forum for your question. Please open a new thread in this forum, you'll get more valuable responses.
    ASP.NET Forums >
    Advanced ASP.NET >
    WCF, ASMX and other Web Services
    Thanks for your understanding.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Need help: Using Axis, how to log all incoming and outgoing soap messages??

    Hi all,
    I have a big problem which probably got a simple solution:
    I need to log all incoming messages, and all outgoing messages (request - response).
    I do not want any other information than this. I have tested the log4j and all I get is a LOT of debug information but not the messages as the arrive/leave the system.
    Please help me with this since it is a big problem for me that I cant debug my applications in the way I want...

    I would preffer not to use the tcpmonitor on my server, don�t want to change ports, etc.. I want a better solution which I can choose myself when to use, and that can directly log to my log-database...
    Sorry but tcpmonitor is not a solution here, even though it is a good monitor program

Maybe you are looking for