Hi

I think if you are going from wsdl file you are supposed to 
Declare a message for the fault
put somehting like that in your porttype
        <operation name='getCurrentLanguageCursorPage'>
            <input message='tns:getCurrentLanguageCursorPageIn'/>
            <output message='tns:getCurrentLanguageCursorPageOut'/>
            <fault name='soapapiFault' message='tns:soapapiFault'/>
        </operation> 

Put something like that in the portBinding
            <fault name="soapapiFault">
                <soap:fault name='soapapiFault' use='literal' />
            </fault>

I imagine that when you invoke wsdl2Java it regenerates the service (with no
throws clause) but not the impl class


---
Philippe

-----Original Message-----
From: Rhimbo [mailto:[EMAIL PROTECTED] 
Sent: jeudi 6 avril 2006 02:49
To: Axis users
Subject: Can't compile web service with exception

Hi all,

I too am having trouble with exceptions.  I can't even get past compilation
now.  I added a simple method to my interface
definition:
Family.java:

     public void testException() throws Exception;


Here's the implementation:
FamilyImpl.java:

     public void testException() throws Exception 
     {
       throw new Exception("Well take that!");
     }


I did:
$ java org.apache.axis.wsdl.Java2WSDL -o family.wsdl \
  --implClass disney.dis.family.FamilyImpl \
  -l"http://localhost:8080/axis/services/familyAccounts"; \
  -p"disney.dis.family" urn:familyAccounts \
  disney.dis.family.Family

to generate the family.wsdl file.  Then I did:

$ java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s \
  -p disney.dis.family family.wsdl


When I compile, I get these errors:

FamilyAccountsSoapBindingImpl.java:123: testException() in
disney.dis.family.FamilyAccountsSoapBindingImpl cannot implement
testException() in disney.dis.family.Family; overridden method does not
throw java.lang.Exception
  public void testException() throws java.lang.Exception
              ^
FamilyImpl.java:1105: testException() in disney.dis.family.FamilyImpl cannot
implement testException() in disney.dis.family.Family; overridden method
does not throw java.lang.Exception
  public void testException() throws Exception


Apparently the compiler thinks that my method prototype in the Family.java
interface definition doesn't throw Exception.  But it does (above).  

More strangely, here is the prototype from the _generated_  Family.java
file:

    public void testException() throws java.rmi.RemoteException;

WSDL2Java added "throws java.rmi.RemoteException" but not "throws
Exception". 

Why is WSDL2Java not adding the "throws Exception" to the method prototype
in the generated Family.java interface file? 

I followed a few threads the past several days about "tweaking the wsdl file
to get exception handling correct."  I admit I didn't quite follow.  

Is there something I need to do after generating the wsdl file, before
running the WSDL2Java command, to get exceptions to work?  

Here is excerpt from the generated WSDL below:

   <wsdl:message name="testExceptionResponse">

   </wsdl:message>

  <wsdl:message name="testExceptionRequest">

   </wsdl:message>

   <wsdl:operation name="testException">

      <wsdl:input message="impl:testExceptionRequest"
name="testExceptionRequest"/>

      <wsdl:output message="impl:testExceptionResponse"
name="testExceptionResponse"/>

   </wsdl:operation>

     <wsdl:operation name="testException">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="testExceptionRequest">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:familyAccounts" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="testExceptionResponse">

            <wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="urn:familyAccounts" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>



Thanks,

Vartan





__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com 

Reply via email to