axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Voysey (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-3301) Generated WSDL has validation errors when methods launch exceptions
Date Wed, 30 Jan 2008 16:12:34 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-3301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12564071#action_12564071
] 

Matt Voysey commented on AXIS2-3301:
------------------------------------

I too am being hit by this problem. The issue occurs not just for web method Exception throws,
but for any web method that uses a return type or argument type from a different package than
the service class. The resulting wsdl generated contains multiple <xs:schema> tags for
the types, each having a separate namespace according to the source package of the java types.
It does not however contain the necessary <xs:import namespace="..."/> tags to make
those types visible to eachother, hence the "components from this namespace are not referenceable"
errors from the validators (I consistently get these errors when trying to generate web service
clients from the wsdl using Eclipse, Netbeans and Visual Studio). This is invalid wsdl and
should be fixed.

However I have also done some experimenting: It is possible to manually add the import tags
to "fix" the generated wsdl so that it validates. However in my recent experience the current
tools still fail to generate a working client that consumes the webservice: for example using
the wsdl2java tool produces a client that fails at runtime with ADB parsing errors - in other
words axis is unable to consume the web service it has created. Visual Studio similarly fails
to generate a client for the webservice. 

The only success I have had is to move all of the types into the same java package (eg. com.foo.ws)
and ALSO override the wsdl schema namespace in services.xml using <schema schemaNamespace="http://ws.foo.com/xsd"/>.
This way the wsdl ends up with both the web service operations and the types it uses inside
the same namespace and hence there is only one <schema> in the wsdl - and this then
works with most client generation tools.

Has anybody had any success with clients where the wsdl contains multiple type schema namespaces?

> Generated WSDL has validation errors when methods launch exceptions
> -------------------------------------------------------------------
>
>                 Key: AXIS2-3301
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3301
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 1.3
>            Reporter: Mauro Molinari
>            Assignee: Deepal Jayasinghe
>            Priority: Critical
>         Attachments: ConvertTempAxis2 1.1.wsdl, ConvertTempFailing1.3.wsdl, src.zip,
wsdl.zip
>
>
> Suppose you have the following class:
> package test;
> public class TestService
> {
>   public String login(String username, String password) throws MyException, MyException2
>   {
>     return "ticket";
>   }
>   
>   public void logout(String ticket) throws MyException, MyException2
>   {
>   }
> }
> and two simple extensions of java.lang.Exception called test.MyException and test.MyException2.
> When running java2wsdl with the following options:
> java2wsdl -o <output-path> -of TestService.wsdl -cp <classpah> -cn test.TestService
> I get a WSDL (attached as TestService.wsdl) for which Eclipse gives two validation errors:
> src-resolve.4.2: Error resolving component 'ns1:Exception'. It was detected that 'ns1:Exception'
is in namespace 'http://test', but components from this namespace are not referenceable from
schema document 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService.wsdl'.
If this is the incorrect namespace, perhaps the prefix of 'ns1:Exception' needs to be changed.
If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService.wsdl'.
TestService.wsdl	line 4
> src-resolve.4.2: Error resolving component 'ns0:MyException'. It was detected that 'ns0:MyException'
is in namespace 'http://test/xsd', but components from this namespace are not referenceable
from schema document 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService.wsdl'.
If this is the incorrect namespace, perhaps the prefix of 'ns0:MyException' needs to be changed.
If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService.wsdl'.
TestService.wsdl	line 8
> As suggested by some users in Eclipse WTP newsgroup, I tried the following:
> java2wsdl -o <output-path> -of TestService_Exception.wsdl -cp <classpah>
-xc java.lang.Exception -cn test.TestService
> The result is a WSDL (attached as TestService_Exception.wsdl) for which Eclipse gives
three validation errors:
> src-resolve.4.2: Error resolving component 'ns1:Exception'. It was detected that 'ns1:Exception'
is in namespace 'http://test', but components from this namespace are not referenceable from
schema document 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService_Exception.wsdl'.
If this is the incorrect namespace, perhaps the prefix of 'ns1:Exception' needs to be changed.
If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService_Exception.wsdl'.
TestService_Exception.wsdl	line 4
> src-resolve.4.2: Error resolving component 'xs:Throwable'. It was detected that 'xs:Throwable'
is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are
not referenceable from schema document 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService_Exception.wsdl'.
If this is the incorrect namespace, perhaps the prefix of 'xs:Throwable' needs to be changed.
If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService_Exception.wsdl'.
TestService_Exception.wsdl	line 4
> src-resolve.4.2: Error resolving component 'ns0:MyException'. It was detected that 'ns0:MyException'
is in namespace 'http://test/xsd', but components from this namespace are not referenceable
from schema document 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService_Exception.wsdl'.
If this is the incorrect namespace, perhaps the prefix of 'ns0:MyException' needs to be changed.
If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///C:/Documents%20and%20Settings/mauro/Documenti/Eclipse33%20workspace/Problema%20Axis2/TestService_Exception.wsdl'.
TestService_Exception.wsdl	line 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Mime
View raw message