Below is the scaled down version of a service that i am trying to develop. My 
service throws a custom exception. However, i get an error when trying to 
generate a WSDL for this SEI.

SEI


  | package com.testservice;
  | 
  | import java.rmi.Remote;
  | import java.rmi.RemoteException;
  | 
  | import com.testservice.exception.MyCustomException;
  | 
  | public interface ExceptionService extends Remote 
  | {
  |     public void throwCustomException() throws MyCustomException, 
RemoteException;
  | }
  | 


MyCustomException class 


  | package com.testservice.exception;
  | 
  | public class MyCustomException extends Exception 
  | {
  |     private int errorCode;
  |     
  |     private String customMsg;
  |     
  |     private String[] arr;
  | 
  |     public MyCustomException() 
  |     {
  |             super();
  |     }
  | 
  |     public MyCustomException(int errorCode, String customMsg, String[] arr) 
{
  |             super();
  | 
  |             this.errorCode = errorCode;
  |             this.customMsg = customMsg;
  |             this.arr = arr;
  |     }
  | 
  |     public String[] getArr() {
  |             return arr;
  |     }
  | 
  |     public void setArr(String[] arr) {
  |             this.arr = arr;
  |     }
  | 
  |     public String getCustomMsg() {
  |             return customMsg;
  |     }
  | 
  |     public void setCustomMsg(String customMsg) {
  |             this.customMsg = customMsg;
  |     }
  | 
  |     public int getErrorCode() {
  |             return errorCode;
  |     }
  | 
  |     public void setErrorCode(int errorCode) {
  |             this.errorCode = errorCode;
  |     }
  |     
  | }
  | 


ANT for generating stubs


  |     <target name="generate_stubs" depends="prepare">
  |             <taskdef name="wstools" 
classname="org.jboss.ws.tools.ant.wstools">
  |                     <classpath refid="client.path"/>
  |             </taskdef>
  |             <wstools dest="${configs.dir}" 
config="${basedir}/wstools-config.xml"/>
  |     </target>
  | 


WSTools Config XML


  | <configuration xmlns="http://www.jboss.org/jbossws-tools";>
  |     <java-wsdl>
  |             <service name="ExceptionService" style="rpc" 
endpoint="com.testservice.ExceptionService"/>
  |             <namespaces target-namespace="http://com.testservice"; 
type-namespace="http://com.testservice/types"/>
  |             <mapping file="jaxrpc-mapping.xml"/>
  |             <webservices servlet-link="ExceptionService"/>
  |     </java-wsdl>
  | </configuration>
  | 


And the error i get on running the ANT is ...

  | generate_stubs:
  |   [wstools] log4j:WARN No appenders could be found for logger 
(org.jboss.ws.tools.WSTools).
  |   [wstools] log4j:WARN Please initialize the log4j system properly.
  |   [wstools] java.lang.IllegalArgumentException: Could not locate a 
constructor with the following types: class 
com.testservice.exception.MyCustomException [class [Ljava.lang.String;, class 
java.lang.String, int]
  |   [wstools]     at 
org.jboss.ws.tools.schema.SchemaTypeCreator.getComplexTypeForJavaException(SchemaTypeCreator.java:722)
  |   [wstools]     at 
org.jboss.ws.tools.schema.SchemaTypeCreator.getType(SchemaTypeCreator.java:268)
  |   [wstools]     at 
org.jboss.ws.tools.schema.SchemaTypeCreator.generateType(SchemaTypeCreator.java:133)
  |   [wstools]     at 
org.jboss.ws.tools.JavaToXSD.generateForSingleType(JavaToXSD.java:109)
  |   [wstools]     at 
org.jboss.ws.tools.helpers.JavaToWSDLHelper.generateType(JavaToWSDLHelper.java:555)
  |   [wstools]     at 
org.jboss.ws.tools.helpers.JavaToWSDLHelper.generateTypesForXSD(JavaToWSDLHelper.java:178)
  |   [wstools]     at 
org.jboss.ws.tools.JavaToWSDL11.handleJavaToWSDLGeneration(JavaToWSDL11.java:241)
  |   [wstools]     at 
org.jboss.ws.tools.JavaToWSDL11.generate(JavaToWSDL11.java:168)
  |   [wstools]     at 
org.jboss.ws.tools.JavaToWSDL.generate(JavaToWSDL.java:318)
  |   [wstools]     at 
org.jboss.ws.tools.helpers.ToolsHelper.handleJavaToWSDLGeneration(ToolsHelper.java:122)
  |   [wstools]     at org.jboss.ws.tools.WSTools.process(WSTools.java:129)
  |   [wstools]     at org.jboss.ws.tools.WSTools.generate(WSTools.java:119)
  |   [wstools]     at org.jboss.ws.tools.ant.wstools.execute(wstools.java:103)
  |   [wstools]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
  |   [wstools]     at org.apache.tools.ant.Task.perform(Task.java:364)
  |   [wstools]     at org.apache.tools.ant.Target.execute(Target.java:341)
  |   [wstools]     at org.apache.tools.ant.Target.performTasks(Target.java:369)
  |   [wstools]     at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
  |   [wstools]     at 
org.apache.tools.ant.Project.executeTarget(Project.java:1185)
  |   [wstools]     at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
  |   [wstools]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
  |   [wstools]     at org.apache.tools.ant.Main.runBuild(Main.java:668)
  |   [wstools]     at org.apache.tools.ant.Main.startAnt(Main.java:187)
  |   [wstools]     at 
org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
  |   [wstools]     at 
org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
  | 

(I have a JBoss-4.0.4 setup running on Java5)

I can solve this problem if i change the order of parameters to parameterized 
constructor of MyCustomException as follows:

  |     public MyCustomException(String[] arr, String customMsg, int errorCode) 
{
  |             super();
  | 
  |             this.errorCode = errorCode;
  |             this.customMsg = customMsg;
  |             this.arr = arr;
  |     }
  | 

I would like to know
1) Is this an expected behavior or bug?
2) If it is an expected behavior, are there any guidelines for the order in 
which parameters to a parameterized constructor are passed?


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957660#3957660

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957660
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to