[英]Java JAX-RPC NoClassDefFoundError
我是JAX-RPC的新手。 我尝试在RAD 7.0中创建一个简单的Java Bean,然后遍历了创建JAX-RPC Web服务的选项。 我的方法如下。
public byte[] getData(byte[] argument) {
<Customclass> proxy = new <Customclass>();
List outputList = new ArrayList();
try {
// Call a method on proxy
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] output = getBytesFromObject(outputList);
return output;
}
1)如果我不导入任何依赖类,从客户端调用时,这很好。 2)但是,当我导入一个依赖类(上面显示的Customclass)时,我看到了以下异常 。
[9/12/09 9:59:00:182 IST] 00000026 UserException E WSWS3228E: Error: Exception: WebServicesFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultString: java.lang.NoClassDefFoundError: <Customclass>
faultActor: null
faultDetail:
java.lang.NoClassDefFoundError:
打包-上面的方法驻留在一个应用程序(ear)中,该应用程序具有包含在ear中的jar文件的所有必需类。 从客户端-JAX-RPC客户端调用上述方法。
如果有人可以指导我,将不胜感激。
是/ lib文件夹中的jar还是部署描述符中指定的文件夹? 以下摘自JSR-000244 JavaTM平台企业版5规范的第8.2.1节。
EE.8.2.1
捆绑的库可以通过以下方式引用与应用程序捆绑的库:
JAR格式文件(例如.jar文件,.war文件或.rar文件)可以通过在引用JAR文件的清单的Class-Path标头中命名引用的.jar文件或目录来引用.jar文件或目录。文件。 使用相对于引用JAR文件的URL的URL命名引用的.jar文件或目录。 清单文件在JAR文件中名为META-INF / MANIFEST.MF。 清单文件中的Class-Path条目的形式为Class-Path:jar文件列表或目录列表,按空格分隔
.ear文件可能包含一个目录,其中包含打包在JAR文件中的库。 .ear文件的部署描述符的library-directory元素包含此目录的名称。 如果未指定库目录元素,或者.ear文件不包含部署描述符,则使用名为lib的目录。 空的library-directory元素可用于指定没有库目录。 该目录中所有扩展名为.jar的文件(但不包括子目录)必须对EAR文件中打包的所有组件(包括应用程序客户端)可用。 这些库可以使用本文描述的任何技术引用与应用程序捆绑在一起或单独安装的其他库。
Web应用程序可能在WEB-INF / lib目录中包含库。 有关详细信息,请参见Servlet规范。 这些库可以使用本文描述的任何技术引用与应用程序捆绑在一起或单独安装的其他库。
另外,将CustomClass变量声明放入try / catch并查看是否获得有关该异常的更多信息。
我遇到了XStream-它允许我按原样使用现有对象,并将它们作为xml字符串传递到服务器,然后从服务器端的xml字符串重新创建对象。
我猜这是从客户端到服务器传递Map,List对象的一种方法。
我计划现在将服务器模块移到远程盒中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.