You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by sridhar vudutha <sr...@gmail.com> on 2006/11/15 19:32:56 UTC

Axis2 - DIME Attachments (Help Please)

Hello,
    I have download the "ws-core-4.0.3-bin.zip" from globus.org. I have
included the ws-core libraries in my project classpath but got compiler
errors. MyServiceAddressingLocator and MyService cannot be resolved. Is this
the right way to integrate ws-core and Axis2 ?

I have the following code in my standalone client.

String targetEndPoint = "
https://medtox.com/eChainTestOrderWebService/eChainTestOrderService.asmx";
**
*/* Getting the ConfigurationContext  */*
ConfigurationContext ctx =
 ConfigurationContextFactory.createConfigurationContextFromFileSystem
("C:\\axis2-1.1-SNAPSHOT\\repository", "C:\\axis2-
1.1-SNAPSHOT\\conf\\axis2.xml");

*/* Instantiating the Axis2 generated Client Stub */         *

 EChainTestOrderServiceStub echainStub = new
EChainTestOrderServiceStub(ctx,targetEndPoint);
 InsertOrder io = new InsertOrder();
 EChainOrderRequest eor = new EChainOrderRequest();
 eor.setAccountNumber(112236);
 eor.setCustomerAccountReference("");

 io.setOrderRequest(eor);

*/* Calling the service method */*
 InsertOrderResponse ior = echainStub.InsertOrder(io);
 GetDonorPass getDonorPass = new GetDonorPass();
 getDonorPass.setOrderId( ior.getInsertOrderResult().getOrderNumber() );
  */* Till here works fine */*
**
 GetDonorPassResponse donorPass = echainStub.GetDonorPass( getDonorPass );

The API described below is completly different.  How can I make use of
ws-core SOAP attachments functionality in Axis2?

*Instead, *Is there a way to write Custom Filter to take out the DIME
attachment in the SOAP response. If there is, can some one point to the
Axis2 API where the SOAP response is first received.so, I could know how the
parser is treating a SOAP response and do some manipulation to overcome this
problem.

I got stuck here and cannot move forward. Any help would be greatly
appreciated.

Thanks,
Sridhar.

   you have to set chunkedEncoding here is a quick example

>  import org.globus.axis.transport.HTTPUtils;
>
>
>
>
>
> //assume your service is called 'MyService'
>
> URL url = new URL(*"local:///localhost:8080/axis/services/MyService"*);
>
> MyServiceAddressingLocator locator = new MyServiceAddressingLocator();
> MyService port = locator.getMyServicePort(url);
>
> // force HTTP 1.1 (why dont we have a method which setHTTP11Version(port,true) ?*HTTPUtils.setHTTP10Version((Stub)port, false);
> *
> //set chunkedEncoding
> *HTTPUtils.setChunkedEncoding((Stub)port, true);
> *
> //Call the hello method from the discovered serviceport.hello();
>
> for more info please look at
>
> http://www.globus.org/toolkit/docs/development/4.1.0/common/javawscore/developer/index.html
>
>
>



On 11/13/06, sridhar vudutha <sr...@gmail.com> wrote:
>
> Martin,
>      Please see below for the descriptor file. I have copied only the Web
> service method  (GetDonorPass) that's giving me the problem. Not sure if you
> have seen my previous message, the service provider is attaching DIME
> content to the header. Is there a way to ignore this attachment?
>
> Thanks,
> Sridhar.
>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="
> http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tns="
> http://medtox.com/eChainTestOrderWebService/eChainTestOrderService"
> xmlns:tm=" http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="
> http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="
> http://medtox.com/eChainTestOrderWebService/eChainTestOrderService"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/ ">
>   <wsdl:types>
>     <s:schema elementFormDefault="qualified" targetNamespace="http://medtox.com/eChainTestOrderWebService/eChainTestOrderService
> ">
>
>   <s:element name="GetDonorPassResponse">
>         <s:complexType>
>           <s:sequence>
>             <s:element minOccurs="0" maxOccurs="1"
> name="GetDonorPassResult" type="tns:eChainResponse"/>
>           </s:sequence>
>         </s:complexType>
>       </s:element>
>       <s:complexType name="eChainResponse">
>         <s:sequence>
>           <s:element minOccurs="1" maxOccurs="1" name="ResponseCreateDate"
> type="s:dateTime"/>
>           <s:element minOccurs="0" maxOccurs="1"
> name="CustomerOrderNumber1" type="s:string"/>
>           <s:element minOccurs="0" maxOccurs="1"
> name="CustomerOrderNumber2" type="s:string"/>
>           <s:element minOccurs="0" maxOccurs="1" name="OrderNumber"
> type="s:string"/>
>           <s:element minOccurs="1" maxOccurs="1" name="CurrentStatusCode"
> type="s:int"/>
>           <s:element minOccurs="1" maxOccurs="1" name="CurrentStatusDate"
> type="s:dateTime"/>
>           <s:element minOccurs="1" maxOccurs="1" name="RequestReturnFlag"
> type="s:boolean"/>
>           <s:element minOccurs="0" maxOccurs="1" name="ResponseMessages"
> type="tns:ArrayOfEChainMessage"/>
>           <s:element minOccurs="0" maxOccurs="1" name="eChainDocuments"
> type="tns:ArrayOfEChainDocument"/>
>         </s:sequence>
>       </s:complexType>
>       <s:complexType name="ArrayOfEChainMessage">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="unbounded"
> name="eChainMessage" nillable="true" type="tns:eChainMessage"/>
>         </s:sequence>
>       </s:complexType>
>       <s:complexType name="eChainMessage">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="1" name="DataElement"
> type="s:string"/>
>           <s:element minOccurs="0" maxOccurs="1" name="Message"
> type="s:string"/>
>           <s:element minOccurs="0" maxOccurs="1" name="ErrorNumber"
> type="s:string"/>
>         </s:sequence>
>       </s:complexType>
>       <s:complexType name="ArrayOfEChainDocument">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="unbounded"
> name="eChainDocument" nillable="true" type="tns:eChainDocument"/>
>         </s:sequence>
>       </s:complexType>
>       <s:complexType name="eChainDocument">
>         <s:sequence>
>           <s:element minOccurs="0" maxOccurs="1" name="Document"
> type="s:base64Binary"/>
>           <s:element minOccurs="1" maxOccurs="1" name="DocumentType"
> type="tns:DocumentTypes"/>
>           <s:element minOccurs="0" maxOccurs="1" name="FileName"
> type="s:string"/>
>           <s:element minOccurs="0" maxOccurs="1" name="MimeType"
> type="s:string"/>
>         </s:sequence>
>       </s:complexType>
>       <s:simpleType name="DocumentTypes">
>         <s:restriction base="s:string">
>           <s:enumeration value="Other"/>
>           <s:enumeration value="DonorPass"/>
>           <s:enumeration value="ChainOfCustody"/>
>           <s:enumeration value="ResultFile"/>
>         </s:restriction>
>       </s:simpleType>
>     </s:schema>
>   </wsdl:types>
>
>   <wsdl:message name="GetDonorPassSoapIn">
>     <wsdl:part name="parameters" element="tns:GetDonorPass"/>
>   </wsdl:message>
>   <wsdl:message name="GetDonorPassSoapOut">
>     <wsdl:part name="parameters" element="tns:GetDonorPassResponse"/>
>   </wsdl:message>
>
>   <wsdl:portType name="eChainTestOrderServiceSoap">
>     <wsdl:operation name="GetDonorPass">
>       <wsdl:input message="tns:GetDonorPassSoapIn"/>
>       <wsdl:output message="tns:GetDonorPassSoapOut"/>
>     </wsdl:operation>
>   </wsdl:portType>
>
>   <wsdl:binding name="eChainTestOrderServiceSoap"
> type="tns:eChainTestOrderServiceSoap">
>     <soap:binding transport="http://schemas.xmlsoap.org/soap/http "
> style="document"/>
>
>     <wsdl:operation name="GetDonorPass">
>       <soap:operation soapAction="http://medtox.com/eChainTestOrderWebService/eChainTestOrderService/GetDonorPass"
> style="document"/>
>       <wsdl:input>
>         <soap:body use="literal"/>
>       </wsdl:input>
>       <wsdl:output>
>         <soap:body use="literal"/>
>       </wsdl:output>
>     </wsdl:operation>
>
>   </wsdl:binding>
>
>   <wsdl:service name="eChainTestOrderService">
>     <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"/<http://schemas.xmlsoap.org/wsdl/%22/>
> >
>     <wsdl:port name="eChainTestOrderServiceSoap"
> binding="tns:eChainTestOrderServiceSoap">
>       <soap:address location="https://test.medtox.com/eChainTestOrderWebService/eChainTestOrderService.asmx"/
>
> <https://test.medtox.com/eChainTestOrderWebService/eChainTestOrderService.asmx%22/>
> >
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
>
>
>  On 11/13/06, Martin Gainty <mg...@hotmail.com> wrote:
> >
> >  Would appear that you have some non-parseable characters in the
> > descriptor provided by .NET?
> > please display the descriptor file provided by ,NET
> >
> > M-
> > This e-mail communication and any attachments may contain confidential
> > and privileged information for the use of the
> > designated recipients named above. If you are not the intended
> > recipient, you are hereby notified that you have received
> > this communication in error and that any review, disclosure,
> > dissemination, distribution or copying of it or its
> > contents
> >
> > ----- Original Message -----
> > *From:* sridhar vudutha <sr...@gmail.com>
> > *To:* axis-user@ws.apache.org
> > *Sent:* Monday, November 13, 2006 9:36 AM
> >  *Subject:* Re: org.apache.axis2.AxisFault: Invalid UTF-8 start byte
> > 0x9d
> >
> >
> > Hello *Brennan,*
> > **
> > Yes, the service is over HTTP.  I copied the SOAP request and sent it
> > using the TCPMon, I got a following exception thrown in the Response Window.
> >
> > javax.xml.transform.TransformerException: org.xml.sax.SAXParseException:
> > Content is not allowed in prolog.
> >  at
> > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown
> > Source)
> >  at
> > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
> >  at org.apache.ws.commons.tcpmon.Sender.prettyXML(Sender.java:206)
> >  at org.apache.ws.commons.tcpmon.Sender.send(Sender.java:190)
> >  at org.apache.ws.commons.tcpmon.Sender$1.actionPerformed(Sender.java:112)
> >  at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
> >  at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
> >  at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
> >  at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
> >  at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown
> > Source)
> >  at java.awt.Component.processMouseEvent(Unknown Source)
> >  at javax.swing.JComponent.processMouseEvent (Unknown Source)
> >  at java.awt.Component.processEvent(Unknown Source)
> >  at java.awt.Container.processEvent(Unknown Source)
> >  at java.awt.Component.dispatchEventImpl(Unknown Source)
> >  at java.awt.Container.dispatchEventImpl (Unknown Source)
> >  at java.awt.Component.dispatchEvent(Unknown Source)
> >  at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
> >  at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
> >  at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
> >  at java.awt.Container.dispatchEventImpl(Unknown Source)
> >  at java.awt.Window.dispatchEventImpl(Unknown Source)
> >  at java.awt.Component.dispatchEvent (Unknown Source)
> >  at java.awt.EventQueue.dispatchEvent(Unknown Source)
> >  at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
> > Source)
> >  at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
> >  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> >  at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
> >  at java.awt.EventDispatchThread.run(Unknown Source)
> > Caused by: org.xml.sax.SAXParseException : Content is not allowed in
> > prolog.
> >  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> >  at
> > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown
> > Source)
> >  ... 29 more
> >
> > If there any configuration settings that I can do to allow the special
> > characters.
> >
> > Thanks,
> > Sridhar.
> >
> >
> > On 11/10/06, Spies, Brennan <Brennan.Spies@ejgallo.com > wrote:
> > >
> > >  Assuming that the service is over HTTP, can you look at it through
> > > TCPMon (or other sniffer) and see if the charset is defined in the header?
> > >
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > *From:* sridhar vudutha [mailto: sridhar.jforum@gmail.com]
> > > *Sent:* Friday, November 10, 2006 3:43 PM
> > > *To:* axis-user@ws.apache.org
> > > *Subject:* org.apache.axis2.AxisFault: Invalid UTF-8 start byte 0x9d
> > >
> > >
> > >
> > > Hello All,
> > >
> > >     When I call one of the web service methods (third party service
> > > written in .NET) , the following exception is thrown. I think there might be
> > > some characters which the XML Reader doesn't like.
> > >
> > > If anybody knows how to over come this problem, that would be  a great
> > > help.
> > >
> > > I'm using Axis2-1.1-SNAPSHOT, rampart-1.1-SNAPSHOT
> > >
> > > org.apache.axis2.AxisFault: Invalid UTF-8 start byte 0x9d (at char
> > > #11, byte #-1); nested exception is:
> > >
> > > *com.ctc.wstx.exc.WstxIOException* : Invalid UTF-8 start byte 0x9d (at
> > > char #11, byte #-1)
> > >
> > > at org.apache.axis2.transport.TransportUtils.createSOAPMessage(
> > >
> > > *TransportUtils.java:126* )
> > >
> > > at org.apache.axis2.transport.TransportUtils.createSOAPMessage(
> > >
> > > *TransportUtils.java:67* )
> > >
> > > at org.apache.axis2.description.OutInAxisOperationClient.send(
> > >
> > > *OutInAxisOperation.java:381* )
> > >
> > > at org.apache.axis2.description.OutInAxisOperationClient.execute(
> > >
> > > *OutInAxisOperation.java:295* )
> > >
> > > at com.choicepoint.labs.EChainTestOrderServiceStub.GetDonorPass(
> > >
> > > *EChainTestOrderServiceStub.java:358* )
> > >
> > > at NewMedToxTest.main(
> > >
> > > *NewMedToxTest.java:78* )
> > >
> > > Caused by:
> > >
> > > *com.ctc.wstx.exc.WstxIOException* : Invalid UTF-8 start byte 0x9d (at
> > > char #11, byte #-1)
> > >
> > > at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(
> > >
> > > *WstxInputFactory.java:536* )
> > >
> > > at com.ctc.wstx.stax.WstxInputFactory.createSR(
> > >
> > > *WstxInputFactory.java:589* )
> > >
> > > at com.ctc.wstx.stax.WstxInputFactory.createSR(
> > >
> > > *WstxInputFactory.java:614* )
> > >
> > > at com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(
> > >
> > > *WstxInputFactory.java:312* )
> > >
> > > at org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(
> > >
> > > *StAXUtils.java:56* )
> > >
> > > at org.apache.axis2.transport.TransportUtils.createSOAPMessage(
> > >
> > > *TransportUtils.java:117* )
> > >
> > > ... 5 more
> > >
> > > Caused by:
> > >
> > > *java.io.CharConversionException* : Invalid UTF-8 start byte 0x9d (at
> > > char #11, byte #-1)
> > >
> > > at com.ctc.wstx.io.UTF8Reader.reportInvalidInitial(
> > >
> > > *UTF8Reader.java:299* )
> > >
> > > at com.ctc.wstx.io.UTF8Reader.read(
> > >
> > > *UTF8Reader.java:185* )
> > >
> > > at com.ctc.wstx.io.ReaderBootstrapper.initialLoad(
> > >
> > > *ReaderBootstrapper.java:245* )
> > >
> > > at com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(
> > >
> > > *ReaderBootstrapper.java:132* )
> > >
> > > at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(
> > >
> > > *WstxInputFactory.java:531* )
> > >
> > > ... 10 more
> > >
> > >
> > >
> > > Thanks,
> > >
> > > Sridhar.
> > >
> >
> >
>