Reliable SOAP messaging problems - weblogic.webservice.saf.StoreForwardException

Hi Guys,
I'm playing with the new SOAP reliable message transport in WL 8.1 SP 1.
I have configured a simple web service, with void return, configured for
reliable messaging. I deploy the client to the same server as the server
hosting the webservice, and it uses the async invocation etc.
It wasn't obvious how to throw the exception in the backend implementation.
I simply grab the usertransaction
and call ut.setRollbackOnly(). Hope that's correct..
Whenever I invoke the operation, I get this:
weblogic.webservice.saf.StoreForwardException: Could not find MessageData
header in aknowledgement
I have a JMS file store setup, and I have it assigned to the server via the
services/webservice tab, and I do see some activity in the file store.
My client looks like this:
AsyncInfo asyncInfo = new AsyncInfo();
asyncInfo.setReliableDelivery(true);
FutureResult fr = port.startReliableOperation("hello World", asyncInfo);
System.err.println("Client: Made invocation, invoking async end now");
port.endReliableOperation(fr);
Any ideas?
Regards,
Jon
PS. [As an aside, aknowledgement needs a 'c']
Client: port.StartReliableOperation()
--S:In reliable TX operation
--S:Going to roll back
--S: Set setRolbackOnly()
--S: Finished Reliable operation
Client: Made invocation, invoking async end now
<26-Aug-2003 18:39:31 o'clock BST> <Info> <WebService> <BEA-220025> <Handler
web
logic.webservice.saf.SAFHandler threw an exception from its handleResponse
metho
d. The exception was:
javax.xml.rpc.JAXRPCException: Failed to handle the response.>
myserver:Info:Handler weblogic.webservice.saf.SAFHandler threw an exception
from
its handleResponse method. The exception was:
javax.xml.rpc.JAXRPCException: Failed to handle the response.
<26-Aug-2003 18:39:31 o'clock BST> <Info> <WebService> <BEA-220047> <A
exception
was thrown from callReceive in the Client Dispatcher.>
myserver:Info:A exception was thrown from callReceive in the Client
Dispatcher.
<26-Aug-2003 18:39:31 o'clock BST> <Info> <WebService> <BEA-220034> <A stack
tra
ce associated with message 220047 follows:
javax.xml.rpc.soap.SOAPFaultException: Exception during processing:
weblogic.web
service.saf.StoreForwardException: Could not find MessageData header in
aknowled
gement. (see Fault Detail for stacktrace)
at
weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.ja
va:285)
at
weblogic.webservice.core.ClientDispatcher.callReceive(ClientDispatche
r.java:119)
at
weblogic.webservice.saf.ConversationAssembler.getResponse(Conversatio
nAssembler.java:302)
at
weblogic.webservice.saf.ConversationAssembler.execute(ConversationAss
embler.java:536)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>

Hi Jon,
I've asked our WS RM guru to comment on your question, but I believe the
answer is going to be that you can explicitly roll back the transaction,
however only from the EJB application method, using the
EJBContext.setRollbackOnly() method.
Regards,
Bruce
Jon Mountjoy wrote:
>
Hi Bruce,
I looked at the example you pointed to, and it does what it says it does.
However, it doesn't attempt to rollback a transaction, which is what I am
doing.
The docs for reliable messaging say:
" If you want to roll back the transaction from the Java method, use the
Java Transaction API (JTA) to get the transaction object and then explicitly
roll back the transaction. "
They also indicate that the receiver executes in the context of a
transaction, which you may rollback.
For example, when the server is down, the transaction doesn't commit. This
behaviour is tested by your example, and it works.
However, when I modify your example to roll back the transaction in the web
service operation backend implementation,
then it doesn't. It yields the same exception that mine does.
For example, I modified your MarketService.java as indicated below to grab
the initial context and then during the operation grab the usertransaction
and call setRollbackOnly(). This causes WebLogic to throw a
weblogic.webservice.saf.StoreForwardException.
Any ideas?
Regards,
Jon
public final class MarketService {
private static boolean mustThrow = true;
InitialContext ctx = null;
public MarketService() {
try {
ctx = new InitialContext();
System.err.println("---InitialContext is set");
} catch (Exception e) {
System.err.println("---InitialContext is not set: " + e);
public void placeOrder(OrderInfo o) {
System.out.println("[MarketService] placing order: " + o);
mustThrow = !mustThrow;
if (mustThrow) {
System.out.println("--S:Going to roll back");
UserTransaction ut = null;
try {
ut = (UserTransaction) ctx.lookup(
"javax.transaction.UserTransaction");
System.out.println("--S: Set setRolbackOnly()");
ut.setRollbackOnly();
// <------------------------------------------
} catch (Exception e) {
System.err.println("--S: UT transaction error:" + e);
} else {
System.out.println("--S: -Not rolling back");
--S:In reliable TX operation
--S:Going to roll back
--S: Set setRolbackOnly()
--S: Finished Reliable operation
<29-Aug-2003 15:48:24 o'clock BST> <Info> <WebService> <BEA-220025> <Handler
weblogic.webservice.saf.SAFHandler threw an
exception from its handleResponse method. The exception was:
javax.xml.rpc.JAXRPCException: Failed to handle the response.>
myserver:Info:Handler weblogic.webservice.saf.SAFHandler threw an exception
from its handleResponse method. The exceptio
n was:
javax.xml.rpc.JAXRPCException: Failed to handle the response.
<29-Aug-2003 15:48:25 o'clock BST> <Info> <WebService> <BEA-220047> <A
exception was thrown from callReceive in the Clie
nt Dispatcher.>
myserver:Info:A exception was thrown from callReceive in the Client
Dispatcher.
<29-Aug-2003 15:48:25 o'clock BST> <Info> <WebService> <BEA-220034> <A stack
trace associated with message 220047 follow
s:
javax.xml.rpc.soap.SOAPFaultException: Exception during processing:
weblogic.webservice.saf.StoreForwardException: Could
not find MessageData header in aknowledgement. (see Fault Detail for
stacktrace)
at
weblogic.webservice.core.ClientDispatcher.receive(ClientDispatcher.java:285)
at
weblogic.webservice.core.ClientDispatcher.callReceive(ClientDispatcher.java:
119)
at
weblogic.webservice.saf.ConversationAssembler.getResponse(ConversationAssemb
ler.java:302)
at
weblogic.webservice.saf.ConversationAssembler.execute(ConversationAssembler.
java:536)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>
myserver:Info:A stack trace associated with message 220047 follows:

Similar Messages

  • Change the default namespace in soap message generated by webservice proxy

    I have a requirement where the default namespace generated by the webservice proxy has to be changed. For example, below is a soap request message generated by the proxy:
    <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"
    xmlns:ns0="http://siebel.com/asi/"
    xmlns:ns1="http://www.siebel.com/xml/getAllSecurityValuesResponse/PS"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <env:Header>
    <wsse:Security
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    env:mustUnderstand="1"
    xmlns:xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <wsse:UsernameToken
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:Username>kaoliver</wsse:Username>
    <wsse:Password
    Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">db2</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </env:Header>
    <env:Body>
    <ns0:SearchSecurityServicegetAllSecurityValues_1>
    <Login>kaoliver</Login>
    </ns0:SearchSecurityServicegetAllSecurityValues_1>
    </env:Body>
    </env:Envelope>
    In the above message, I want to change the oasis namespace to a different namespace. Where are the default namespaces defined in the proxy classes generated by Jdev so that I can change them?
    Thanks in advance,
    Warm Regards,
    Shashi Anand B

    >
    If I define a prefix P2L in the expression editor to correspond to "http://foo.com/namespace/business", I'm able to reference the ExecuteResponse element as "./P2L:ExecuteResponse", but then I get stuck.
    If I try use a Rename action to change the namespace for "./P2L:*", only the ExecuteResponse element is renamed to <sof:ExecutResponse xmlns:sof="http://foo.com/namespace/proxy">. Upstream in the calling application, there's an XML stream reader exception because (I assume) ExecuteResult is not found and parsed.
    >
    You pattern "./P2L:\*" matches just one element so it's ok that the payload's namespace wasn't touched. If you want to rename namespace for all elements try "//P2L:*". However, I'm not sure whether this is what you want. Try do describe what you do, what you want and what you get instead.
    >
    I also tried using a Replace action against "./P2L:ExecuteResponse/@xmlns" to replace its contents with "http://foo.com/namespace/proxy". I also tried "./P2L:ExecuteResponse/@P2L:xmlns". Neither worked.
    >
    I think it's not a good approach to replace content of xmlns as this attribute is not a common xml attribute.

  • Multi-part input message problem in webservice Proxy generator

    While generating a java proxy for an Oracle Access Manager Identity XML operation I get the following.
    Generating proxy
    WARNING: ignoring operation "OblixIDXML_um_modifyUser": input message with multiparts is not WS-I compliant and is not currently supported
    Proxy generation finished
    See wsdl (document\litteral) fragment:
         <message name="OblixIDXMLInput">
              <part name="authentication" element="oblix:authentication"/>
              <part name="request" element="oblixxmllocalschema:request"/>
         </message>
    It is poosibel to generate the Proxy when the authentication part is removed from the message.
    My question: Are there work arounds for generating a client with Jdev (10.1.3) that can be deployed on SOA suite 10.1.3 (this service call is part of a composite service).
    For instance calling proxy generator from command line like a wsdl2java (Axis like) or editing some (generated) source code files after generating the service with one part removed.
    Regards,
    Bert

    While generating a java proxy for an Oracle Access Manager Identity XML operation I get the following.
    Generating proxy
    WARNING: ignoring operation "OblixIDXML_um_modifyUser": input message with multiparts is not WS-I compliant and is not currently supported
    Proxy generation finished
    See wsdl (document\litteral) fragment:
         <message name="OblixIDXMLInput">
              <part name="authentication" element="oblix:authentication"/>
              <part name="request" element="oblixxmllocalschema:request"/>
         </message>
    It is poosibel to generate the Proxy when the authentication part is removed from the message.
    My question: Are there work arounds for generating a client with Jdev (10.1.3) that can be deployed on SOA suite 10.1.3 (this service call is part of a composite service).
    For instance calling proxy generator from command line like a wsdl2java (Axis like) or editing some (generated) source code files after generating the service with one part removed.
    Regards,
    Bert

  • Use of Reliable Messaging between WebLogic and a different vendor

    Hello,
    We have developed an application that is running on the WebLogic App Server v8.1
    sp1.
    Recently we have received a request/query on providing reliable SOAP messaging
    from our application to 3rd party.
    I have read the documentation on Reliable messaging support and have noted that
    it is only supported between two WebLogic Application servers.
    My questions are, since we do not have control of the 3rd party's application,
    and it may not be based on a WebLogic App Server:
    1. Will this work?
    2. Does anyone have any idea of the type of issues that may be experienced?
    3. How close is the implementation to the WS Reliable Messaging specification?
    So, if the other party was based on an IBM or Microsoft implementation is this
    likely to work?
    It goes without saying that any work done would need to be very throughly tested
    and qualified.
    I have looked through the WebLogic Documentation on WebServices as well as searching
    this newgroup for other posts on this topic, hopefully I have not missed anything
    (If so, my apologies.)
    Thanks,
    Mike Shea.

    Bruce Stephens <[email protected]> wrote:
    Hi Michael,
    The short answer, at this time, OOTB, WS-RM interop with an unknown
    vendor would be doubtful. For a longer answer, David Orchard has a good
    review of the emerging web services specs [0]. You might consider ebXML
    messaging [1] as a more mature solution.
    Thank you Bruce. I will look at these docs.
    Mike S.
    Hope this helps,
    Bruce
    [0]
    http://dev2dev.bea.com/technologies/webservices/articles/ws_orchard.jsp
    [1]
    http://e-docs.bea.com/wli/docs70/ebxml/getstart.htm
    Michael Shea wrote:
    Hello,
    We have developed an application that is running on the WebLogic AppServer v8.1
    sp1.
    Recently we have received a request/query on providing reliable SOAPmessaging
    from our application to 3rd party.
    I have read the documentation on Reliable messaging support and havenoted that
    it is only supported between two WebLogic Application servers.
    My questions are, since we do not have control of the 3rd party's application,
    and it may not be based on a WebLogic App Server:
    1. Will this work?
    2. Does anyone have any idea of the type of issues that may be experienced?
    3. How close is the implementation to the WS Reliable Messaging specification?
    So, if the other party was based on an IBM or Microsoft implementationis this
    likely to work?
    It goes without saying that any work done would need to be very throughlytested
    and qualified.
    I have looked through the WebLogic Documentation on WebServices aswell as searching
    this newgroup for other posts on this topic, hopefully I have not missedanything
    (If so, my apologies.)
    Thanks,
    Mike Shea.

  • Could not access SOAP header - sending sopa message using weblogic

    i am using saaj to send a SOAP message ,through weblogic, i am getting an error like below
    Could not access SOAP header
    what should i do for sending a soap message using weblogic

    You're going to have to provide many more details than that. If it's useful, you could go here and read all the documentation books covering web services.

  • [NOTE] Adding xsi type to SOAP messages

    Here is a quick 2.0.10 note.
    Some older SOAP stack require xsi type information embedded in the SOAP message to unmarshall the XML message into the appropriate object representation.
    Most customers do no want the overhead of xsi type definition into the SOAP message given that most modern SOAP stack perform the unmarshalling based on the WSDL/XML Schema.
    To address both requirements, we now by default do not add the xsi:type information to the SOAP traffic that the BPEL PM server generates.
    But we have added a new configuration property to the partnerLinkBinding element of the bpel.xml deployment descriptor so that you can ask the BPEL PM server to selectively decorate the SOAP messages targeted at a specific partnerLink. Here is how this looks like:
    <partnerLinkBinding name="XXXXX">
    <property name="sendXSIType">true</property>
    </partnerLinkBinding>
    Note: the challenge here is that if you invoke a service that requires XSI type information and you forget to set that flag in the deployment descriptor you will get a BindingFault with no detail :-( We are very aware of this limitation and are working very diligently towards addressing this problem with a much nicer error message in the 2.1 (aka end of September release).
    Edwin

    Hi,
    thanks for the quick answers.
    The Werbservice is MS CRM Dynamics. The "GUI" is still working. so the webservice is active and alive.
    I want to query the CRM, so i sent a fetch statement to file, which is being picked up and sent as SOAP message to the webservice.
    With point 6 in the mentioned blog the error message in the rwb is gone now, but the message in SXMB_MONI is flagged red and i'm struggling to finfd out what the next error is....may be someone can point out where to look at

  • Content type for soap messages

    Hi,
    i'm picking up a file via nfs, taking the content of the file and i'm trying to send the content via SOAP to a Webservice. i'm encountering the foloowing error message in the comm. channel monitoring:
    SOAP: call failed: java.io.IOException: invalid content type for SOAP: TEXT/PLAIN
    So how/where can i set TEXT/XML in XI 3.0? Or did i made another misconfiguration where i'm not aware of? Any help appreciated.

    Hi,
    thanks for the quick answers.
    The Werbservice is MS CRM Dynamics. The "GUI" is still working. so the webservice is active and alive.
    I want to query the CRM, so i sent a fetch statement to file, which is being picked up and sent as SOAP message to the webservice.
    With point 6 in the mentioned blog the error message in the rwb is gone now, but the message in SXMB_MONI is flagged red and i'm struggling to finfd out what the next error is....may be someone can point out where to look at

  • WLS 7.0 sp2 - Servlet Problems with SOAP messages

              I'm using Weblogic 7.0 SP2 and trying to create a Servlet to receive SOAP wrapped
              XML messages. I'm getting the following error. Is this a problem with WLS7.0sp2's
              support of JAXM? The System.out.println's indicate I have successfully received
              the incoming SOAP request and then successfully formatted the SOAP response, but
              upon returning saving the response it appears to blow up. Does anyone have any
              suggestions?
              I need to do the following in a servlet:
              - receive an incoming SOAP request with an embedded XML message
              - perform some processing
              - return a SOAP response with an embedded XML message
              Should I be using JAXM? Or can I do this same task easily with JAX-RPC?
              <Feb 24, 2004 4:10:42 PM AST> <Error> <HTTP> <101017> <[ServletContext(id=260434
              7,name=isd.war,context-path=)] Root cause of ServletException
              java.lang.Error: NYI
              at weblogic.webservice.core.soap.SOAPMessageImpl.saveRequired(SOAPMessag
              eImpl.java:360)
              at javax.xml.messaging.JAXMServlet.doPost(Unknown Source)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
              (ServletStubImpl.java:1058)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:401)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:306)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
              n.run(WebAppServletContext.java:5445)
              at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
              eManager.java:780)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
              rvletContext.java:3105)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
              pl.java:2588)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              >
              I've stripped the code down so that all it does is verifies the incoming SOAP/XML
              request and creates a hard-coded response... be gentle... I'm a novice at this
              import javax.xml.soap.*;
              import javax.servlet.*;
              import javax.servlet.http.*;
              // import javax.xml.transform.*;
              import java.util.*;
              import java.io.*;
              public class RegisterServlet extends HttpServlet
              static MessageFactory fac = null;
              static
              try
              fac = MessageFactory.newInstance();
              catch (Exception ex)
              ex.printStackTrace();
              public void init(ServletConfig servletConfig) throws ServletException
              super.init(servletConfig);
              public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
              IOException
              try
              System.out.println("** Note: doPost() Entering req = " + req);
              // Get all the headers from the HTTP request
              MimeHeaders headers = getHeaders(req);
              // Get the body of the HTTP request
              InputStream is = req.getInputStream();
              // Now internalize the contents of a HTTP request
              // and create a SOAPMessage
              SOAPMessage msg = fac.createMessage(headers, is);
              System.out.println("** Note: doPost() Step A");
              SOAPMessage reply = null;
              reply = onMessage(msg);
              System.out.println("** Note: doPost() Step B reply = " + reply);
              if (reply != null)
              * Need to call saveChanges because we're
              * going to use the MimeHeaders to set HTTP
              * response information. These MimeHeaders
              * are generated as part of the save.
              if (reply.saveRequired())
              System.out.println("** Note: doPost() Step C reply.saveRequired()");
              reply.saveChanges();
              resp.setStatus(HttpServletResponse.SC_OK);
              putHeaders(reply.getMimeHeaders(), resp);
              // Write out the message on the response stream
              OutputStream os = resp.getOutputStream();
              System.out.println("** Note: doPost() Step D os = " + os);
              reply.writeTo(os);
              os.flush();
              else
              resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
              catch (Exception ex)
              throw new ServletException("** Error: SAAJ POST failed: " + ex.getMessage());
              static MimeHeaders getHeaders(HttpServletRequest req)
              Enumeration enum = req.getHeaderNames();
              MimeHeaders headers = new MimeHeaders();
              while (enum.hasMoreElements())
              String headerName = (String)enum.nextElement();
              String headerValue = req.getHeader(headerName);
              StringTokenizer values =
              new StringTokenizer(headerValue, ",");
              while (values.hasMoreTokens())
              headers.addHeader(headerName,
              values.nextToken().trim());
              return headers;
              static void putHeaders(MimeHeaders headers, HttpServletResponse res)
              Iterator it = headers.getAllHeaders();
              while (it.hasNext())
              MimeHeader header = (MimeHeader)it.next();
              String[] values = headers.getHeader(header.getName());
              if (values.length == 1)
              res.setHeader(header.getName(),
              header.getValue());
              else
              StringBuffer concat = new StringBuffer();
              int i = 0;
              while (i < values.length)
              if (i != 0)
              concat.append(',');
              concat.append(values[i++]);
              res.setHeader(header.getName(), concat.toString());
              // This is the application code for handling the message.
              public SOAPMessage onMessage(SOAPMessage message)
              SOAPMessage replymsg = null;
              try
              System.out.println("** Note: OnMessage() Entering msg = " + message);
              //Extract the ComputerPart element from request message and add to reply SOAP
              message.
              SOAPEnvelope reqse = message.getSOAPPart().getEnvelope();
              SOAPBody reqsb = reqse.getBody();
              //System.out.println("** Note: OnMessage() Step B");
              System.out.println("** Note: OnMessage () Step A Soap Request Message Body = "
              + reqsb);
              //Create a reply mesage from the msgFactory of JAXMServlet
              System.out.println("** Note: OnMessage () Step B");
              replymsg = fac.createMessage();
              SOAPPart sp = replymsg.getSOAPPart();
              SOAPEnvelope se = sp.getEnvelope();
              SOAPBody sb = se.getBody();
              System.out.println("** Note: OnMessage () Step C Soap Reply Before Message Body
              = " + sb);
              se.getBody().addBodyElement(se.createName("RegisterResponse")).addChildElement(se.createName("ErrorCode")).addTextNode("000");
              System.out.println("** Note: OnMessage () Step D Soap Reply After Message Body
              = " + sb);
              replymsg.saveChanges();
              System.out.println("** Note: OnMessage() Exiting replymsg = " + (replymsg));
              catch (Exception ex)
              ex.printStackTrace();
              return replymsg;
              

    Michael,
    I got the same error on WLS8.1/Win2K professional and apache FOP (old version).
    After digging into the WLS code and FOP(old version). i found the conflict happens
    on
    the "org.xml.sax.parser" system property. In WLS code, they hard coded like the
    following when startup weblogic server:
    System.setProperty("org.xml.sax.parser", "weblogic.xml.jaxp.RegistryParser");
    But the FOP code try to use the "org.xml.sax.parser" system property to find the
    sax parser then conlict happens.
    Here is the response from BEA support :
    "I consulted with our developers regarding the question of whether we can change
    the hard-coded value for the java system property: org.xml.sax.parser by using
    a configuration parameter and I found that unfortunately there is no specific
    setting to change the value. As you had mentioned in your note the org.xml.sax.parser
    system property can be changed programmatically in your application code."
    I solve my problem by using newer apache FOP (it never use the system property:org.xml.sax.parser
    any more) and XML Registy for WLS8.1.
    Good luck.
    David Liu
    Point2 Technologies Inc.
    "p_michael" <[email protected]> wrote:
    >
    Help.
    When we migrated from WLS 6.1 to WLS 7.0 SP2 when encountered a problem
    with XML
    parsing that did not previously exist.
    We get the error "weblogic.xml.jaxp.RegistryParser is not a SAX driver".
    What does this mean? And, what should we do about it.
    p_michael

  • Weblogic 8.1 SP 6 throws Read channel closed when sending SOAP message

    Hi,
    I am using Weblogic8.1 SP6 & Axis1 to send SOAP message through RPC call using SSL. This is working intermittently.
    I use WLSSLAdapter to set up the SSL, and some properties I set:
    System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.MessageFactoryImpl");
    System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
    System.setProperty("weblogic.webservice.verbose", "true");
    In case of error, the server throws this:
    java.io.IOException: Read channel closed
    at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
    at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Sourc
    e)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown S
    ource)
    at com.certicom.tls.record.ReadHandler.read(Unknown Source)
    at com.certicom.tls.record.ReadHandler.read(Unknown Source)
    at com.certicom.tls.record.ReadHandler.read(Unknown Source)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.closeWriteHandler(Unknown S
    ource)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.close(Unknown Source)
    at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
    at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Sourc
    e)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown S
    ource)
    at com.certicom.tls.record.WriteHandler.write(Unknown Source)
    at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
    AT java.io.FilterOutputStream.write(FilterOutputStream.java:80)
    at weblogic.webservice.binding.soap.HttpClientBinding.writeToStream(HttpClientB
    inding.java:430)
    at weblogic.webservice.binding.soap.HttpClientBinding.send(HttpClientBinding.ja
    va:219)
    at weblogic.webservice.core.handler.ClientHandler.handleRequest(ClientHandler.j
    ava:37)
    at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.jav
    a:143)
    at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:231)
    at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143
    at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:471)
    at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
    at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:566)
    at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:419)
    Before sending message, application will first retrieve WSDL from the target. This is always success.
    I need to know how to fix this problem.
    Any help is appreciated. Thanks.
    Alvin

    Hi,
    Even I am facing the same issue could any body help me out to solve this issue.

  • How to get full SOAP message in WebService

    hi,
    Is it possible to get SOAP message while Request operation during transaction in WebService.
    I tried with Handler, while retreiving message it is having a MessageContext. How to initilize that like example
    public boolean handleRequest(MessageContext mc) {
              SOAPMessageContext messageContext = (SOAPMessageContext) mc; 
              System.out.println("** Request: "+ messageContext.getMessage().toString());
              return true;
         }while i make a class called SoapHdlr i have implemented all methods including the above.
    In that from my class if i want to call the above method i need to pass MessageContext how to give that MessageContext or any other ways to get SOAPMessage fully.
    plz can any one guide me there
    ThanKQ

    I think, there are some concepts missunderstood. First if you use JAX-WS- Metro framework, this kind of handlers will work. Also you should identify your SOAPHandler for your web service. For ex: in Netbeans 6, you can right click on service and select configure handlers. Then you decide your handler.
    Then automatically, Metro framework directs SOAPMessages to your SOAPHandler to handle full SOAPs. HandleMessage() method will work.
    If you have problem again, just ask.

  • External WebService call from CAF Core returns Invalid soap message

    I am trying to perform the very simple action of calling a WebService from a CAF Core app service.
      1. I imported the WS (Axis Web service running on NW 2004s SP9 server) with WSDL (option 2 on import external service page).
      2. I then assembled the call in an app service method and invoke it.
      3. I made sure to configure the end point for the service and the method using the External Service configuration.
    When I execute the CAF core method using a simple Callable Object test client, I get the following error:
    com.sap.caf.mp.base.exception.EngineException: Invalid soap message received
         at com.sap.caf.mp.core.data.service.manager.wsdl11.SOAPToMessageValueConverter.processComplexTypeMode(SOAPToMessageValueConverter.java:290)
         at com.sap.caf.mp.core.data.service.manager.wsdl11.SOAPToMessageValueConverter.generateComplexTypeValue(SOAPToMessageValueConverter.java:179)
         at
    truncated.
    I have also captured the XML request/reponse trace using tcpmon :
    REQUEST:
    POST /NWTestExpressWAR/services/TestExpressService HTTP/1.1
    Host: 192.168.99.120:8078
    Content-Type: text/xml; charset=UTF-8
    Content-Length: 348
    SOAPAction: http://www.testsys.com/TestExpressService/getAvailableModels
    <?xml version="1.0" encoding="utf-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:GetAvailableModels xmlns:ns1="http://www.testsys.com/TestExpressService"/></SOAP-ENV:Body></SOAP-ENV:Envelope>
    RESPONSE:
    HTTP/1.1 200 OK
    Server: SAP J2EE Engine/7.00
    Set-Cookie: saplb_*=(J2EE11743000)11743050; Version=1; Path=/
    Content-Type: text/xml; charset=utf-8
    Date: Mon, 04 Dec 2006 02:19:39 GMT
    Transfer-Encoding: chunked
    Set-Cookie: JSESSIONID=(J2EE11743000)ID1261187150DB11296929644926762709End; Version=1; Domain=192.168.99.120; Path=/
    1f3
    <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><GetAvailableModelsResponse xmlns="http://www.testsys.com/TestExpressService"><modelNames><name>Great Oak Manufacturing-January03 Test</name><name>PriceCheck-default</name></modelNames><errorMessagesReturn/></GetAvailableModelsResponse></soapenv:Body></soapenv:Envelope>
    0
    The only problem I can think off is that the transfer-encoding is marked as chunked which is causing the characters '1f3' and '0' to appear after and before the response and that this is causing the app to crash.
    192.168.99.120 is the server the hosts the WS. It is also a 2004s SP9 server. The client server that hosts the CAF core service is of the same configuration. 8078 is the port I redirect for tcpmon purposes.
    Could anyone shed some light on my problem?
    Thanks,
    Pratap.

    It looks like NW WS client cannot handle Transfer-encoding of chunked even though this is part of HTTP 1.1. What seems to be happening is that the NW WS client is creating a HTTP 1.1 request. The service (axis ws running on NW) seeing this is creating a HTTP 1.1 response w/ chunked encoding. However, the client cannot handle this encoding and barfs. The solution is to change the service to return a HTTP/1.0 response since NW cant handle HTTP 1.1.
    Pratap.

  • 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 resolve setPrefix() in SOAP(saaj API) with weblogic/webservices jar?

    Hi,
    I am facing a problem deploying a Web-Application in Weblogic containing SOAP related code.
    My environment is as below:
    1) Weblogic 8.1 SP2 server
    2) Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
    3) A method is exposed as web-service
    4) A client program(which is a part of Action class of Webb-app) written with SOAP APIs containing the following section:
         MessageFactory mf = MessageFactory.newInstance();
         SOAPMessage sm = mf.createMessage();
         SOAPPart sp = sm.getSOAPPart();
         sp.setPrefix("soapenv");
         SOAPEnvelope se = sp.getEnvelope();
         se.addNamespaceDeclaration("soapenv","http://orion:7001");
    giving the following error at runtime:
    Exception in thread "main" java.lang.AbstractMethodError:
    weblogic.were.soap.SOAPEnvelopeImpl.setPrefix(Ljava/lang/String;)V
    at Client.main(Client.java:39)
    I am able to compile without any error/warning all the time.
    This is giving only when putting the saaj(jwsdp-1.4) jars along with weblogic/webservices jars in classpath.
    I am able to run the same application(outside Web-application as a stand-alone java program) without
    any error while not using weblogic/webservices jar in the classpath.
    The saaj jars needed to run without any error are:
    saaj-api.jar
    saaj-impl.jar
    mailapi.jar
    activation.jar
    xercesImpl.jar
    xalan.jar
    dom.jar
    jdom.jar
    I thinks this is a compatibility issue. Please suggest to resolve it.
    Thanks in advance,
    pal_sk

    Hi,
    I am facing a problem deploying a Web-Application in Weblogic containing SOAP related code.
    My environment is as below:
    1) Weblogic 8.1 SP2 server
    2) Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
    3) A method is exposed as web-service
    4) A client program(which is a part of Action class of Webb-app) written with SOAP APIs containing the following section:
         MessageFactory mf = MessageFactory.newInstance();
         SOAPMessage sm = mf.createMessage();
         SOAPPart sp = sm.getSOAPPart();
         sp.setPrefix("soapenv");
         SOAPEnvelope se = sp.getEnvelope();
         se.addNamespaceDeclaration("soapenv","http://orion:7001");
    giving the following error at runtime:
    Exception in thread "main" java.lang.AbstractMethodError:
    weblogic.were.soap.SOAPEnvelopeImpl.setPrefix(Ljava/lang/String;)V
    at Client.main(Client.java:39)
    I am able to compile without any error/warning all the time.
    This is giving only when putting the saaj(jwsdp-1.4) jars along with weblogic/webservices jars in classpath.
    I am able to run the same application(outside Web-application as a stand-alone java program) without
    any error while not using weblogic/webservices jar in the classpath.
    The saaj jars needed to run without any error are:
    saaj-api.jar
    saaj-impl.jar
    mailapi.jar
    activation.jar
    xercesImpl.jar
    xalan.jar
    dom.jar
    jdom.jar
    I thinks this is a compatibility issue. Please suggest to resolve it.
    Thanks in advance,
    pal_sk

  • Weblogic webservice problem

    Hi , friends, I have a problem regarding web services in oracle weblogic workshop.
    In our application we need to create 2 web services. We have 10 to 12 packages under src folder , i.e.,
    src(under this folder)------------------>com.abc.des.desk (like this we have couple of packages). All those packages are having different java related file, porlets etc.
    I need to create another package called com.abc.des.webservices
    under this I have to create 2 webservice (JAX-WS) with annotations.All these webservices along with remaining above mentioned packages goes to one single EAR file.
    I am unable to select JAX-WS related facets.
    When I select weblogic webservices , it is giving a warning message that "No projects found that support web services.The Standard Annotated Web Service facet must be enabled".I didn't understand where I need to enable them.
    Please suggest on this problem.
    Thanks a lot
    Peter.

    Hi Peter
    1. Since you used the words like portlets etc, I am assuming you have a PortalWeb Project. So you have like portalEAR, portalWeb and may be portalDataSync project. NOW under portalWeb project src you have your own packages. This is where you need to create a new WebService also under a new package. FIRST of all, you need to add Web Services Project Facet to this portalWeb pojrect. Still it may NOT work. But I will give you an idea. Select your portalWeb project. Right clikc mouse, select Properties. From Properties window on left side, select Project Facets. On right side you will see list of Facets already selected. Click on Modify Project button on bottom right hand corner. This opens up Project Facets window. Check the Facet named Web Services. NOW immediately in the bottom you may see some Errors like "Standard Annotated Web Services 2.0 and Beehive Controls 1.0.1 cannot both be selected" etc. I am talking about WLP 10.3 version. This means by default portalWeb project will have Beehive stuff facets Enabled to allow use of Pageflow Portlets. So you cannot add Web Services Facet to this Same portalWeb project. Unless you want to manully remove Beehive Facets (means you cannot use Pageflow portlets), then may be Web Services Facets can be added.
    One work around or more elegant solution is create a another brand new project like myWebServices project and enable Web Services for this. Nothing but create a new WebServices project with all Web Services Facets. Add this to the same portalEAR project. Then add all your webservices to this new project. NOW you can always invoke these Web Services from portalWeb project src code like utility classes or Pageflows etc. Incase if you want to use some utility classes across both portalWeb and webServices project, then you need to add all these classes into another simple Java Project. Then import this into both portalWeb and webServices projects.
    I saw another opotion also. When you select Web Services Project Facet, it has 2 child facets. Standard Annotated Web Services whose default version is 2.0. If you choose version 1.0, look like there are no dependencies. Means poralWeb project can have Web Services Facet provided you use Standard Annotated Web Sevices Version 1.0 (instead of default 2.0). Now using this you may loose some new features from 2.0. I am not sure to what extent this will work. But give this a shot in your dev Env. And see if you can create a simple webservice and live with that.
    portalEAR can have both portalWeb project and any other projects like webServices or Java utility porjects etc. All these projects will be bundled into one single .EAR file only for deployment.
    Thanks
    Ravi Jegga

  • Problem: Applets cannot Create SOAP Message Objects using JAX Pack

    Hi all
    I want to invoke a simple webservice located at a url.
    I wish to send a SOAP Message . The Message is creating using
    javax.xml.soap package
    Here is the code
    public void init(){
    try{
    MessageFactory MF = MessageFactory.newInstance();
    SOAPMessage message = MF.createMessage();
    SOAPPart SP = message.getSOAPPart();
    SOAPEnvelope SE = SP.getEnvelope();
    SOAPHeader SH = SE.getHeader();
    SOAPBody SB = SE.getBody();
    Name bodyName = SE.createName
    ("testString","L","http://tempuri.org/");
    SOAPBodyElement SBE = SB.addBodyElement(bodyName);
    }catch(Exception e){}
    When I run the applet in a browser I am getting ExceptionInInitializerError or NullPointer Exception.
    The same application works when i run as a standalone application. But not in APPLET.
    Can somebody help me in this regard

    Im trying to do the same thing !!, i have a servlet that processes SOAP messages, and return SOAP messages back.
    Like you i have a implementation running with a stand alone client instead of an applet, which runs fine (there are several .jar files that have to be included in the jre/lib/ext directory, in total about a meg!).
    Im now looking to incorporate this client into an applet, but it moans about cannot find classes (the JAXM and SOAP classes).
    Have you found a solution to this yet ?? Surely you cannot expect the user to download all the required jar files along with the applet??
    With regards to your problem try setting up a button that fires off the SOAP Msg and processes the response, i read on the Sun Java Applet tutorials that some code should stay out of the init method(its a bit vague about WHAT should stay out..), maybe this is an example.
    Thanks,
    (i dont really expect a response as you posted this ages ago !!, but it would be nice.)

Maybe you are looking for