我正在使用weblogic 12.1 ant任务jwsc生成工件以创建weblogic Web服务。以下是我的JWS文件
@WebService(name="HelloWorld", serviceName="HelloWorld",
targetNamespace="http://example.org")
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
@WLHttpTransport(contextPath="HelloWorld", serviceUri="HelloWorldSvc",
portName="HelloWorldPort")
public class HelloWorld{
@WebMethod()
public void sayHello(){
Employee emp=new Employee();
emp.setName(“Alex”);
System.out.println(“Hello ”+emp.getName());
}
}
我的webMethod sayHello()使用Employee类。执行jwsc任务后,生成的WSDL不包含任何与Employee类相关的引用。如果我使用clientgen ant任务从WSDL生成客户端工件(从jwsc任务生成),则客户端jar将不具有Employee类(因为WSDL没有用户定义的类Employee)。
如果我尝试访问该应用程序,它会为Employee类抛出NoClassDefFoundError。
Ant脚本:
<jwsc srcdir="src" destdir="${dist}">
<jws file="com/examples/webservices/HelloWorld.java" />
</jwsc>
用于生成客户端工件的Ant任务:
<clientgen wsdl="http://localhost:7001/HelloWorld/HelloWorldSvc?WSDL”
destFile="HelloWorld_Client.jar"
packageName="com.examples.webservices.client"
classpathref="class.path"
type="JAXRPC"/>