Hi Nigel,
>
> The issue is still not resolved.
>
> Doing
> List details = se.getFault().getDetails(); with catch block does not
> produce anything as details.size() is zero.
>
> Also, i set interceptor as follows
>
> ByteArrayOutputStream request = new ByteArrayOutputStream(4096);
>  ByteArrayOutputStream response = new ByteArrayOutputStream(4096);
> try{
> String m_location = "
> http://webservices.ticketvala.com/axis2/services/WSTicketvala";;
>  IBindingFactory fac = BindingDirectory.getFactory(GetCityDetails.class);
> SoapClient client = new SoapClient(m_location, fac);
>  client.setOperationName("urn:wsGetCity");
>  CopiedInputStreamInterceptor inputInterceptor = new
> CopiedInputStreamInterceptor(response);
>  CopiedOutputStreamInterceptor outputInterceptor = new
> CopiedOutputStreamInterceptor(request);
> TransportOptions transportOptions =
> TransportDirectory.newTransportOptions(m_location);
>  if(transportOptions instanceof OutputStreamInterceptable) {
>
> ((OutputStreamInterceptable)transportOptions).setOutputStreamInterceptor(outputInterceptor);
>  }
> if(transportOptions instanceof InputStreamInterceptable) {
>
> ((InputStreamInterceptable)transportOptions).setInputStreamInterceptor(inputInterceptor);
>  }
> client.setTransportOptions(transportOptions);
>   GetCityDetails city = new GetCityDetails();
> Authenticate aut = new Authenticate();
>  aut.setGid("1");
> aut.setPwd("faregugly@mmyt");
> aut.setUid("faregugly");
>  city.setAuth(aut);
> client.addInFaultDetailsHandler(new ExceptionReader());
> /* client.setSoapFaultResolver(new SoapFaultResolver() {
>  @Override
>  public Object handleFault(SoapFault arg0) {
> // System.out.println(arg0.getFaultCode().getUri());
>  return null;
> }
> });*/
>  Object obj = client.call(city);
>  }catch(SoapFaultException se) {
>  System.out.println("request "+request);
> System.out.println("response "+response);
>  /*System.out.println("Error "+se.getFault()+"  "+
> se.getFault().getFaultString()+"  "+se.getMessage()+
>  "  "+se.getFault().getFaultCode().getUri()+"  "+
> se.getFault().getFaultCode().getName());*/
>  List details = se.getFault().getDetails();
> if(details.size() > 0) {
>  System.out.println("details");
> for(Iterator itr = details.iterator() ; itr.hasNext();) {
>  System.out.println(itr.next());
> }
>  }
> }catch(Exception e) {
> e.printStackTrace();
>  }
> }
>
> The above code produces following output
>
> request
> <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/
> "><SOAP:Body><wsGetCity><wsGetCityRQ><wsAuthenticate><userId>faregugly</userId><groupId>1</groupId><password>faregugly@mmyt
> </password></wsAuthenticate></wsGetCityRQ></wsGetCity></SOAP:Body></SOAP:Envelope>
>
> response
>  <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>unknown</faultstring><detail
> /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
>
> The exception throws at the line client.call(city). The request xml is
> prepared well and all data are correct.
>
> Kindly help.
>
> Thanks
> Deepak
>
> On Tue, Mar 15, 2011 at 12:13 AM, <
> jibx-users-requ...@lists.sourceforge.net> wrote:
>
>> Send jibx-users mailing list submissions to
>>        jibx-users@lists.sourceforge.net
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>        https://lists.sourceforge.net/lists/listinfo/jibx-users
>> or, via email, send a message with subject or body 'help' to
>>        jibx-users-requ...@lists.sourceforge.net
>>
>> You can reach the person managing the list at
>>        jibx-users-ow...@lists.sourceforge.net
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of jibx-users digest..."
>>
>>
>> Today's Topics:
>>
>>   1. Re: Starting Jibx (Nigel Charman)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Tue, 15 Mar 2011 07:42:48 +1300
>> From: Nigel Charman <nigel.charman...@gmail.com>
>> Subject: Re: [jibx-users] Starting Jibx
>> To: JiBX users <jibx-users@lists.sourceforge.net>
>> Message-ID: <4d7e61a8.6050...@gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Hi Deepak
>>
>> Please try the following within the SoapFaultException catch block
>> (copied from the soap-fault-trace example):
>>
>>             System.err.println("SOAP Fault");
>>             System.err.println("----------");
>>             System.err.println(e.getFault());
>>             List details = se.getFault().getDetails();
>>             if (details.size()>  0) {
>>                 System.err.println();
>>                 System.err.println("Details");
>>                 System.err.println("-------");
>>                 for (Iterator iterator = details.iterator();
>> iterator.hasNext();) {
>>                     System.err.println(iterator.next());
>>                 }
>>             }
>>
>> If you want to use a custom SoapFaultResolver, you will need to call
>> client.setSoapFaultResolver(...) before calling client.call(city).
>>
>> If this doesn't help, you'll need to get a copy of the request and
>> response messages for further diagnosis.  You can do this by either:
>>
>>   1. Using JiBX/WS interceptors - see example [1], or
>>   2. Using a monitoring proxy, such as Apache TCPMon
>>
>> cheers
>> Nigel
>>
>> [1]
>>
>> http://jibx.svn.sourceforge.net/viewvc/jibx/jibxws/trunk/examples/http-servlet-interceptor/build/src/org/jibx/ws/example/interceptor/client/HelloClient.java?revision=450&content-type=text%2Fplain
>>
>>
>> On 15/03/11 07:14, Deepak Singh wrote:
>> > Hi Nigel,
>> >
>> > Changing the code as suggested by you again produces
>> > SoapFaultException. Details as follows,
>> >
>> > try{
>> > IBindingFactory fac = BindingDirectory.getFactory(GetCityDetails.class);
>> > SoapClient client = new
>> > SoapClient("
>> http://webservices.ticketvala.com/axis2/services/WSTicketvala";,
>> > fac);
>> > client.setOperationName("urn:wsGetCity");
>> > GetCityDetails city = new GetCityDetails();
>> > Authenticate aut = new Authenticate();
>> > aut.setGid("1");
>> > aut.setPwd("faregugly@mmyt");
>> > aut.setUid("faregugly");
>> > city.setAuth(aut);
>> > client.addInFaultDetailsHandler(new ExceptionReader());
>> > Line 31- Object obj = client.call(city);
>> > client.setSoapFaultResolver(new SoapFaultResolver() {
>> > @Override
>> > public Object handleFault(SoapFault arg0) {
>> > System.out.println(arg0.getFaultCode().getUri());
>> > return null;
>> > }
>> > });
>> > }catch(SoapFaultException se) {
>> > System.out.println("Error "+se.getFault()+"
>> >  "+se.getFault().getFaultString()+"  "+se.getMessage());
>> > se.printStackTrace();
>> > }catch(Exception e) {
>> > e.printStackTrace();
>> > }
>> > }
>> >
>> > Running this program produces the following output
>> >
>> > Error soapenv:Server - unknown  unknown  unknown
>> > org.jibx.ws.soap.SoapFaultException: unknown
>> > at org.jibx.ws.soap.client.SoapClient.handleFault(SoapClient.java:428)
>> > at org.jibx.ws.soap.client.SoapClient.call(SoapClient.java:418)
>> > at com.jibx.gwt.shared.TestJibx.main(TestJibx.java:31)
>> >
>> > Kindly suggest how to resolve this.
>> >
>> > Thanks
>> > Deepak
>> >
>> >
>> >
>> > On Mon, Mar 14, 2011 at 1:36 PM,
>> > <jibx-users-requ...@lists.sourceforge.net
>> > <mailto:jibx-users-requ...@lists.sourceforge.net>> wrote:
>> >
>> >     Send jibx-users mailing list submissions to
>> >     jibx-users@lists.sourceforge.net
>> >     <mailto:jibx-users@lists.sourceforge.net>
>> >
>> >     To subscribe or unsubscribe via the World Wide Web, visit
>> >     https://lists.sourceforge.net/lists/listinfo/jibx-users
>> >     or, via email, send a message with subject or body 'help' to
>> >     jibx-users-requ...@lists.sourceforge.net
>> >     <mailto:jibx-users-requ...@lists.sourceforge.net>
>> >
>> >     You can reach the person managing the list at
>> >     jibx-users-ow...@lists.sourceforge.net
>> >     <mailto:jibx-users-ow...@lists.sourceforge.net>
>> >
>> >     When replying, please edit your Subject line so it is more specific
>> >     than "Re: Contents of jibx-users digest..."
>> >
>> >
>> >     Today's Topics:
>> >
>> >       1. Re: Starting Jibx (Nigel Charman)
>> >
>> >
>> >
>> ----------------------------------------------------------------------
>> >
>> >     Message: 1
>> >     Date: Mon, 14 Mar 2011 21:05:55 +1300
>> >     From: Nigel Charman <nigel.charman.nz
>> >     <http://nigel.charman.nz>@gmail.com <http://gmail.com>>
>> >     Subject: Re: [jibx-users] Starting Jibx
>> >     To: JiBX users <jibx-users@lists.sourceforge.net
>> >     <mailto:jibx-users@lists.sourceforge.net>>
>> >     Message-ID: <4d7dcc63.90...@gmail.com
>> >     <mailto:4d7dcc63.90...@gmail.com>>
>> >     Content-Type: text/plain; charset="utf-8"
>> >
>> >     Hi Deepak
>> >
>> >     Since this is a SOAP service, you should use SoapClient rather than
>> >     PoxClient.  The POX interface simply transports Plain Old XML
>> payloads
>> >     without the additional SOAP constructs (see
>> >     http://jibx.sourceforge.net/jibxws/pox.html).
>> >
>> >     The following WSDL implies that the SOAP service is requiring a
>> >     SOAPAction header set to "urn:wsGetCity".
>> >
>> >     <wsdl:operation name="wsGetCity">
>> >     <wsdl:input message="tns:wsGetCityMessage"
>> >     wsaw:Action="urn:wsGetCity"/>
>> >
>> >     To set this header, you'll need to change your code from:
>> >
>> >         Client client = new
>> >     PoxClient("
>> http://webservices.ticketvala.com/axis2/services/WSTicketvala";,
>> >     fac);
>> >         ...
>> >
>> >     to
>> >
>> >         SoapClient client = new
>> >     SoapClient("
>> http://webservices.ticketvala.com/axis2/services/WSTicketvala";,
>> >     fac);
>> >         client.setOperationName("urn:wsGetCity");
>> >         ...
>> >
>> >     If this still fails with a SOAPFault, catch the SoapFaultException
>> and
>> >     call getFault() and getMessage() for details of the fault.
>> >
>> >     cheers
>> >     Nigel
>> >
>> >     On 14/03/11 09:50, Deepak Singh wrote:
>> >     > Hi Dennis,
>> >     >
>> >     > I downloaded the latest jibx-ws-0.9.1 and tried my webservices
>> with
>> >     > this one. Details is as follows,
>> >     >
>> >     > I have a wsdl file at
>> >     >
>> http://webservices.ticketvala.com/axis2/services/WSTicketvala?wsdl
>> >     > Pls hit the url above to see the wsdl file. here there are
>> different
>> >     > methods to invoke. I try with single method wsGetCity.
>> >     >
>> >     > I need to invoke this method to get the response. Xml for
>> >     request and
>> >     > response is as follows,
>> >     >
>> >     > request.xml
>> >     >
>> >     > <wsGetCity>
>> >     >
>> >     > **
>> >     >
>> >     > <wsGetCityRQ>
>> >     >
>> >     > <wsAuthenticate>
>> >     >
>> >     > <userId>xyz</userId>
>> >     >
>> >     > <groupId>1</groupId>
>> >     >
>> >     > <password>xyz</password>
>> >     >
>> >     > </wsAuthenticate>
>> >     >
>> >     > </wsGetCityRQ>
>> >     >
>> >     > </wsGetCity>
>> >     >
>> >     >
>> >     > similarly response.xml has its own format.
>> >     >
>> >     >
>> >     > I created datamodel and binding file for request.xml as follows,
>> >     >
>> >     > public class GetCityDetails {
>> >     >
>> >     > public GetCityDetails() {
>> >     >
>> >     > }
>> >     >
>> >     > private Authenticate auth;
>> >     >
>> >     >
>> >     > public Authenticate getAuth() {
>> >     >
>> >     > return auth;
>> >     >
>> >     > }
>> >     >
>> >     >
>> >     > public void setAuth(Authenticate auth) {
>> >     >
>> >     > this.auth = auth;
>> >     >
>> >     > }
>> >     >
>> >     > }
>> >     >
>> >     >
>> >     > public class Authenticate {
>> >     >
>> >     >
>> >     > public Authenticate() {
>> >     >
>> >     >
>> >     > }
>> >     >
>> >     >
>> >     > private String uid;
>> >     >
>> >     > private String gid;
>> >     >
>> >     > private String pwd;
>> >     >
>> >     > public String getUid() {
>> >     >
>> >     > return uid;
>> >     >
>> >     > }
>> >     >
>> >     > public void setUid(String uid) {
>> >     >
>> >     > this.uid = uid;
>> >     >
>> >     > }
>> >     >
>> >     > public String getGid() {
>> >     >
>> >     > return gid;
>> >     >
>> >     > }
>> >     >
>> >     > public void setGid(String gid) {
>> >     >
>> >     > this.gid = gid;
>> >     >
>> >     > }
>> >     >
>> >     > public String getPwd() {
>> >     >
>> >     > return pwd;
>> >     >
>> >     > }
>> >     >
>> >     > public void setPwd(String pwd) {
>> >     >
>> >     > this.pwd = pwd;
>> >     >
>> >     > }Exception
>> >     >
>> >     > }
>> >     >
>> >     >
>> >     > binding.xml
>> >     >
>> >     > <?xml version="1.0" encoding="UTF-8"?>
>> >     >
>> >     > <binding>
>> >     >
>> >     > <mapping name="wsGetCity"
>> class="com.jibx.gwt.shared.GetCityDetails"
>> >     > ordered="false">
>> >     >
>> >     > <structure name="wsGetCityRQ" usage="optional">
>> >     >
>> >     > <structure name="wsAuthenticate" field="auth" usage="optional">
>> >     >
>> >     > <value name="userId" field="uid" usage="optional"></value>
>> >     >
>> >     > <value name="groupId" field="gid" usage="optional"></value>
>> >     >
>> >     > <value name="password" field="pwd" usage="optional"></value>
>> >     >
>> >     > </structure>
>> >     >
>> >     > </structure>
>> >     >
>> >     > </mapping>
>> >     >
>> >     > </binding>
>> >     >
>> >     >
>> >     > I run the jibx compiler jibx 1.2.2 as eclipse plugin and
>> compilation
>> >     > successful.
>> >     >
>> >     >
>> >     > Now i create the client to invoke the method wsGetCity
>> >     >
>> >     >
>> >     > IBindingFactory fac =
>> >     BindingDirectory.getFactory(GetCityDetails.class);
>> >     >
>> >     > Client client = new
>> >     >
>> >     PoxClient("
>> http://webservices.ticketvala.com/axis2/services/WSTicketvala";,
>> >     > fac);
>> >     >
>> >     > GetCityDetails city = new GetCityDetails();
>> >     >
>> >     > Authenticate aut = new Authenticate();
>> >     >
>> >     > aut.setGid("1");
>> >     >
>> >     > aut.setPwd("faregugly@mmyt");
>> >     >
>> >     > aut.setUid("faregugly");
>> >     >
>> >     > city.setAuth(aut);
>> >     >
>> >     > client.call(city);
>> >     >
>> >     >
>> >     > Now at the last line, client.call(city), i get the exception as
>> >     > org.jibx.ws.transport.WsTransportException: 500 Internal Server
>> >     Error
>> >     >
>> >     > I tried with SoapClient also but got SoapFault exception.
>> >     >
>> >     > Kindly request you to find out my mistake. Am i passing correct
>> >     url to
>> >     > PoxClient ?
>> >     >
>> >     > Also, is this the correct way to consume webservice methods at
>> >     client
>> >     > side?
>> >     >
>> >     > Kindly explain the concept a bit.
>> >     >
>> >     > Thanks
>> >     > Deepak
>>
>
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to