axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dennis Sosnoski <...@sosnoski.com>
Subject Re: AxisFault when using jibx
Date Tue, 30 Sep 2008 12:17:47 GMT
Looks like the JiBX code for Wsdl2Java may be having a problem with the 
schema generated by the JAXWS service. Can you provide the full schema 
portion of the WSDL, so that I can see the namespace usage?

By default, JAXB does not use elementFormDefault="qualified" in schema 
definitions, meaning only the top-level element definitions are 
namespace qualified. That's a shame, since 
elementFormDefault="qualified" is basically a best practice for clean 
XML structure. Wsdl2Java and JiBX should be able to handle it either 
way, though.

Thanks, and I'll look into the problem.

  - Dennis

-- 
Dennis M. Sosnoski
SOA and Web Services in Java
Axis2 Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117



Sagi Mann wrote:
> Yes, this is misunderstanding, I simply used the sample quick start code tree
> as a template. This is why you see the .adb package, but I assure you it's
> jibx.
>
>
> DSosnoski wrote:
>   
>> Hi Sagi,
>>
>>  From your exception stack trace, it appears that you're still using 
>> ADB, rather than JiBX:
>>
>>     
>
> Anyway, I took your advice regarding TCPmon and found a difference between
> what SoapUI generates and what Axis2/JIbx generates:
>
> SoapUI sends the following request, which works great:
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ws="http://ws/">
>    <soapenv:Body>
>       <ws:testOneArg>
>          <testOneArg0>sagi</testOneArg0>
>       </ws:testOneArg>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> Axis2/jibx sends:
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>    <soapenv:Body>
>       <testOneArg xmlns="http://ws/"> 
>          <testOneArg0>sagi</testOneArg0>
>       </testOneArg>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> I found a solution, but it seems somewhat strange: not on the client side,
> but on the server side:
>
> If I added a targetNamespace to the method params as well, the SAME "bad"
> request now gets invoked correctly, i.e. when changing the web service like
> so:
>
>     @WebMethod
>     @WebResult(targetNamespace="http://ws/")
>     public String testOneArg(@WebParam(name="testOneArg0",
> targetNamespace="http://ws/") String name) {
>         return "Hello " + name;
>     }
>
> The Axis2/jibx client works great, and the same request it sent before now
> gets a proper "Hello john" response...
>
> I'm not sure if this is the "correct" solution, but at least it works. The
> con of this solution, is, of course, the fact that I need to "enforce"
> things on the service side, which may be 3rd party and out of my control. Is
> there any better way to do this?
>
> thanks
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message