axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Amila Suriarachchi <amilasuriarach...@gmail.com>
Subject Re: use supplied WSDL instead of generated WSDL: ...ADBException: Unexpected subelement
Date Thu, 29 Oct 2009 10:00:47 GMT
On Thu, Oct 29, 2009 at 2:08 PM, H <henjo@glasch.nl> wrote:

>  Some additional info, since I'm really stuck on this point:
>
> - I have 2 different classes (annotated with @Webservice) which expose a
> few public methods (annotated with @Webmethod).
>
> - I have added separate .wsdl files (same name as the @Webservice classes)
> in META-INF
>
> - The param "useOriginalwsdl" has no influence at all. If the the .wsdl's
> are in META-INF, they're used. Setting to false (or removing it) doesn't do
> anything.
>
> - The WSDL's I put in META-INF are identical to what ?wsdl generates. No
> modifications.
>
> - When the .aar is deployed with the supplied WSDL's and I call the ?wsdl,
> the output WSDL XML is about the same as the original generated WSDL (some
> order differences, nothing major it seems).
>
> What am i doing wrong? Why am I getting the ADBException?
>

check whether there is a difference between new and old wsdl files.

thanks,
Amila.


>
>
> *Exception in thread "main" org.apache.axis2.AxisFault:
> org.apache.axis2.databinding.ADBException: Unexpected subelement
> debugMessage
>     at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>     at
> nl.organization.webservices.Ws_UsersStub.fromOM(Ws_UsersStub.java:19397)
>     at
> nl.organization.webservices.Ws_UsersStub.removeUser(Ws_UsersStub.java:1384)
>     at test.Client.reqRemoveUser(Client.java:65)
>     at test.Client.main(Client.java:14)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> *
>
>
> Henjo van Rees wrote:
>
> Hi,
>
> I've been developing an Axis based Webservice for some time now. Right now
> I'm at the point where the basics function alright and that I am starting on
> improving stuff like security.
> One aspect of that is stop using the generated WSDL and supply my own.
> Because I'm far from a WS guru, I decided to use the generated WSDL and use
> that as a basis for improvement.
>
> What I've done is the following:
> - Save generated WSDL with the same name as the service name (name.wsdl)
> and put that in the .aar (META-INF dir)
> - Set the parameter "useOriginalwsdl" to true for that service
> (services.xml)
> - Keep the classes exactly the same, no other changes.
> - Deploy the .aar, restart Tomcat.
> - Verify webservice+operations using the listServices servlet (they are
> listed exactly as they should)
>
> So Axis2 accepts the .aar.
>
> However, now my webservices test client does not function anymore with this
> modification. This probably has to do with namespaces, but I wonder how I
> should get it working.
> What must I change in my services.xml to get it working with my own WSDL?
>
> **** *The java classes are in the root package nl.organization.webservices
> .*
>
> *** services.xml snippet:*
> <serviceGroup>
>     <service name="Ws_Users">
>         <description>WebServices - User Management</description>
>         <parameter name="ServiceClass"
> locked="true">nl.organization.webservices.Ws_Users</parameter>
>         <parameter name="useOriginalwsdl">true</parameter>
>         <operation name="addUser">
>             <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>         </operation>
>     </service>
> <serviceGroup>
>
> *** Generated WSDL snippet*:
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"<http://schemas.xmlsoap.org/wsdl/>xmlns:ns1=
> "http://org.apache.axis2/xsd" <http://org.apache.axis2/xsd> xmlns:ns=
> "http://webservices.organization.nl" <http://webservices.organization.nl>xmlns:wsaw=
> "http://www.w3.org/2006/05/addressing/wsdl"<http://www.w3.org/2006/05/addressing/wsdl>xmlns:http=
> "http://schemas.xmlsoap.org/wsdl/http/"<http://schemas.xmlsoap.org/wsdl/http/>xmlns:ax21=
> "http://webservices.organization.nl/xsd"<http://webservices.organization.nl/xsd>xmlns:xs=
> "http://www.w3.org/2001/XMLSchema" <http://www.w3.org/2001/XMLSchema>xmlns:mime=
> "http://schemas.xmlsoap.org/wsdl/mime/"<http://schemas.xmlsoap.org/wsdl/mime/>xmlns:soap=
> "http://schemas.xmlsoap.org/wsdl/soap/"<http://schemas.xmlsoap.org/wsdl/soap/>xmlns:soap12=
> "http://schemas.xmlsoap.org/wsdl/soap12/"<http://schemas.xmlsoap.org/wsdl/soap12/>targetNamespace=
> "http://webservices.organization.nl" <http://webservices.organization.nl>>
>     <wsdl:documentation>Ws_Users</wsdl:documentation>
>     <wsdl:types>
>         <xs:schema xmlns:ax22="http://webservices.organization.nl/xsd"<http://webservices.organization.nl/xsd>attributeFormDefault="qualified"
elementFormDefault="qualified"
> targetNamespace="http://webservices.organization.nl"<http://webservices.organization.nl>
> >
>             <xs:import namespace="http://webservices.organization.nl/xsd"<http://webservices.organization.nl/xsd>
> />
>             <xs:element name="addUser">
>                 <xs:complexType>
>                     <xs:sequence>
>                         <xs:element minOccurs="0" name="username"
> nillable="true" type="xs:string"/>
>                         <xs:element minOccurs="0" name="groupname"
> nillable="true" type="xs:string"/>
>                     </xs:sequence>
>                 </xs:complexType>
>             </xs:element>
>             <xs:element name="addUserResponse">
>                 <xs:complexType>
>                     <xs:sequence>
>                         <xs:element minOccurs="0" name="return"
> nillable="true" type="ax22:WsResponse"/>
>                     </xs:sequence>
>                 </xs:complexType>
>             </xs:element>
>             ....
>         </xs:schema>
>         <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified" targetNamespace=
> "http://webservices.organization.nl/xsd"<http://webservices.organization.nl/xsd>
> >
>             <xs:complexType name="WsResponse">
>                 <xs:sequence>
>                     <xs:element minOccurs="0" name="debugMessage"
> nillable="true" type="xs:string"/>
>                     <xs:element minOccurs="0" name="exitCode"
> type="xs:int"/>
>                     <xs:element minOccurs="0" name="message"
> nillable="true" type="xs:string"/>
>                 </xs:sequence>
>             </xs:complexType>
>         </xs:schema>
>     </wsdl:types>
>     <wsdl:message name="addUserRequest">
>         <wsdl:part name="parameters" element="ns:addUser"/>
>     </wsdl:message>
>     <wsdl:message name="addUserResponse">
>         <wsdl:part name="parameters" element="ns:addUserResponse"/>
>     </wsdl:message>
> ....
>
> *** EXCEPTION WHEN RUNNING WS CLIENT:*
> (I've generated the stub classes with wsdl2java)
> Exception in thread "main" org.apache.axis2.AxisFault:
> org.apache.axis2.databinding.ADBException: Unexpected subelement
> debugMessage
>     at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>     at
> nl.organization.webservices.Ws_UsersStub.fromOM(Ws_UsersStub.java:19397)
>     at
> nl.organization.webservices.Ws_UsersStub.removeUser(Ws_UsersStub.java:1384)
>     at test.Client.reqRemoveUser(Client.java:65)
>     at test.Client.main(Client.java:14)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>
> Any help will be welcome!
> Thanks!
>
>
>


-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Mime
View raw message