[ 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to