我们有一个使用Netbeans 6.7.1和Glassfish v2.1开发的Java EE 5项目。尝试用Netbeans 6.9.1和Glassfish v3.1打开这个项目,有许多关于丢失类型的错误。
Java EE 6是否向后兼容Java EE 5?
缺失的库通常围绕:
javax.xml.rpc.ServiceException;
javax.xml.rpc.Stub;
org.jvnet.staxex.StreamingDataHandler;
com.sun.xml.ws.fault.SOAPFaultBuilder;
任何想法?
(更新)似乎不是所有必需的库都被自动添加到Glassfish 3.1项目的类路径中。缺失的主要罐子是下的jaxrpc-api-osgi.jar
/glassfish/modules/。如果我手动添加这个罐子,所有的问题都消失了。为什么会这样呢?为什么不像使用NetBeans 6.7.1和Glassfish 2.1那样自动添加jar ?
我设法找到org.jvnet.staxex.StreamingDataHandler; and com.sun.xml.ws.fault.SOAPFaultBuilder;
通过:
- com.sun.xml.internal.org.jvnet.staxex.StreamingDataHandler;
- com.sun.xml.internal.ws.fault.SOAPFaultBuilder;
看起来好像发生了一些包更改。尽管如此,这并不能解决我的问题,javax.xml.rpc.Stub; and javax.xml.rpc.ServiceException;
没有被正确地添加到我的类路径。我觉得手动添加jar是不对的。
Wulfgarpro
没有任何是完全向后兼容的,但是如果这些类没有在所有中显示,则是可疑的。至少前两个肯定在Java EE/Java 6中。如果存在不兼容性,我希望出现参数不匹配或方法未找到等问题。
我要看的第一个地方是Netbeans项目设置——我敢打赌你的类路径。
javax.xml.rpc
在EE 5和EE 6中都存在。所以这不可能是API版本不兼容。你的Netbeans项目的设置方式一定有问题。
我通过卸载所有JDK、JRE和NetBeans解决了这个问题。重新安装后,问题已解决。
WulfgarPro