Deployment problem with web service
I need a help for exposing a stateless session bean into a web service.
Here I created a stateless session bean and created a JAR file for that bean.
After that I want to convert it into a web service by using servicegen task.
I run the build.xml file to perform servicegen task.
Here I am facing one exception like:
BUILD FAILED: C:\eclipse\workspace\webService\build.xml:22: weblogic.xml.schema.binding.BindingException: Invalid class received: interface com.b2.ebp.presentation.factory.EbpConfigPresentationWrapper loaded from file:/C:/eclipse/workspace/ebpWeb/ebpWebJar.jar!/com/b2/ebp/presentation/factory/EbpConfigPresentationWrapper.class. All classes that will be serialized or deserialized must be non-interface, non-abstract classes that provide a public default constructor
This class is there in web project and it is an abstract class. For that web project I created a Jar file and included this JAR file in classpath element of servicegen task in build.xml because I need this web project's classes in bean class. This JAR file contais's all(class,abstract,interface) class files.
My doubt is we cann't include any abstract class or interface in the bean method which is exposed as a web service? If included please tell me how to include.
My build.xml file contenta are as follows.....
<project name="WebServiceStatelessSession" default="ear" basedir=".">
<property name="source" value="src"/>
<property name="build" value="build"/>
<property name="ejb_jar_file" value="../eagleEJB/eagleEJB.jar"/>
<property name="war_file" value="basic_statelessSession.war"/>
<property name="ear_file" value="ws_basic_statelessSession.ear"/>
<property name="client_jar_file" value="eagleEJB_client.jar"/>
<property name="namespace" value="http://www.bea.com/servers/wls70/samples/examples/webservices/basic/statelessSession"/>
<taskdef name="servicegen" classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask">
<classpath path="c:/bea/weblogic81/server/lib/webservices.jar"/>
<classpath path="c:/bea/weblogic81/server/lib/weblogic.jar"/>
</taskdef>
<target name="ear">
<servicegen
destear="${ear_file}" warname="${war_file}">
<service
ejbjar="${ejb_jar_file}"
targetnamespace="${namespace}"
servicename="eagleEJB"
serviceuri="/eagleEJB"
generatetypes="True"
expandmethods="True">
<client
saveWSDL="True"
packageName="examples.webservices.basic.statelessSession"
clientJarName="${client_jar_file}"
/>
</service>
<classpath>
<pathelement path="${build}"/>
<pathelement path="c:/bea/weblogic81/server/lib/webservices.jar"/>
<pathelement path="c:/bea/weblogic81/server/lib/weblogic.jar"/>
<pathelement path="c:/eclipse/workspace/eagleWeb/WebRoot/WEB-INF/classes"/>
<pathelement path="c:/j2sdk1.4.2_08/lib"/>
<pathelement path="c:/j2sdk1.4.2_08/lib/rt.jar"/>
</classpath>
</servicegen>
</target>
<taskdef name="clientgen" classname="weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask">
<classpath path="c:/bea/weblogic81/server/lib/webservices.jar"/>
<classpath path="c:/bea/weblogic81/server/lib/weblogic.jar"/>
</taskdef>
<target name="client">
<property name="wsdlUrl" value="http://localhost:7001/basic_statelessSession/HelloWorldEJB?WSDL"/>
<clientgen wsdl="${wsdlUrl}"
packagename="examples.webservices.basic.statelessSession"
clientjar="${client_jar_file}">
<classpath>
<pathelement path="c:/bea/weblogic81/server/lib/webservices.jar"/>
<pathelement path="c:/bea/weblogic81/server/lib/weblogic.jar"/>
</classpath>
</clientgen>
</target>
</project>
and another error I am facing is
Buildfile: C:\eclipse\workspace\eagle\build.xml
ear:
[servicegen] Generating service "eagleEJB" ...
[servicegen] weblogic.xml.schema.binding.BindingException: unable to determine valid constructor for exception class java.lang.reflect.InvocationTargetException
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:145)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:367)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:313)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:181)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
[servicegen] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:379)
[servicegen] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:135)
[servicegen] Caused by: weblogic.xml.schema.binding.BindingException: unable to determine valid constructor for exception class java.lang.reflect.InvocationTargetException
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.addPropertiesToException(JavaInspector.java:323)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.fillExceptionDescriptor(JavaInspector.java:251)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.fillDescriptor(JavaInspector.java:171)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.getDescriptor(JavaInspector.java:139)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.createDescriptorForClass(JavaInspector.java:106)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:106)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:89)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:102)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] ... 11 more
[servicegen] --- Nested Exception ---
[servicegen] weblogic.xml.schema.binding.BindingException: unable to determine valid constructor for exception class java.lang.reflect.InvocationTargetException
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.addPropertiesToException(JavaInspector.java:323)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.fillExceptionDescriptor(JavaInspector.java:251)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.fillDescriptor(JavaInspector.java:171)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.getDescriptor(JavaInspector.java:139)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.JavaInspector.createDescriptorForClass(JavaInspector.java:106)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:106)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:89)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:102)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:367)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:313)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:181)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
[servicegen] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:379)
[servicegen] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:135)
BUILD FAILED: C:\eclipse\workspace\eagle\build.xml:22: weblogic.xml.schema.binding.BindingException: unable to determine valid constructor for exception class java.lang.reflect.InvocationTargetException
Total time: 1 second