java.lang.NoSuchMethodError: javax.jws.WebService.portName()Ljava/lang/String
来源:互联网 发布:mysql 子查询 临时表 编辑:程序博客网 时间:2024/06/05 04:31
前些日子用xfire1.2.6开发了一个webservice接口,主要功能是用来传输文件,接口定义如下:
public interface WSExport {
public byte[] export(String docPath,String xmlPath) throws Exception;
}
开发好服务端和客户端后,在tomcat6下面测试通过,以为一切ok了。但昨天做集成测试时,把客户端发布到weblogic9.1问题就来了。
问题一:
调用接口,报java.lang.NoSuchMethodError: javax.jws.WebService.portName()Ljava/lang/String 异常。
问题一原因:
经过在网上google+baidu,找到了问题所在,原因是weblogic里面用到包%WL_HOME%\server\lib\weblogic.jar里面有javax.jws.WebService这个类,版本跟xfire里面用到的包xfire-jsr181-api-1.0-M1.jar里面的类javax.jws.WebService版本不一致,而运行时默认优先加载的是weblogic.jar里面的类,所以引起冲突。
问题一解决方法:
把xfire的包xfire-jsr181-api-1.0-M1.jar复制到%WL_HOME%\server\lib\目录下,并且修改配置文件%WL_HOME%\common\bin\commEnv.cmd(linux下修改commEnv.sh)。
找到SET WEBLOGIC_CLASSPATH= 这行,把%WL_HOME%\server\lib\xfire-jsr181-api-1.0-M1.jar加在%WL_HOME%\server\lib\weblogic.jar前面,然后保存。重启weblogic问题一解决。
问题二:
问题一解决后以为万事大吉了,谁知调用接口时,新的问题来了。报:
java.lang.UnsupportedOperationException
at weblogic.xml.stax.XMLStreamReaderBase.getTextCharacters(XMLStreamRead
erBase.java:487)
问题二原因:
找了半天没找到真正原因,只知道大家都说接口返回是byte[]就会出现以上异常。
问题二解决方法:
这是个不完美的解决方法,需要更改接口,把byte[]用base64进行编码,编码后byte[]变成了String,然后客户端收到String后用base64解码成byte[]。异常不再出现,成功将文件通过webservice传输到客户端。希望有高人提出更好的解决方法供大家讨论。
public interface WSExport {
public byte[] export(String docPath,String xmlPath) throws Exception;
}
开发好服务端和客户端后,在tomcat6下面测试通过,以为一切ok了。但昨天做集成测试时,把客户端发布到weblogic9.1问题就来了。
问题一:
调用接口,报java.lang.NoSuchMethodError: javax.jws.WebService.portName()Ljava/lang/String 异常。
问题一原因:
经过在网上google+baidu,找到了问题所在,原因是weblogic里面用到包%WL_HOME%\server\lib\weblogic.jar里面有javax.jws.WebService这个类,版本跟xfire里面用到的包xfire-jsr181-api-1.0-M1.jar里面的类javax.jws.WebService版本不一致,而运行时默认优先加载的是weblogic.jar里面的类,所以引起冲突。
问题一解决方法:
把xfire的包xfire-jsr181-api-1.0-M1.jar复制到%WL_HOME%\server\lib\目录下,并且修改配置文件%WL_HOME%\common\bin\commEnv.cmd(linux下修改commEnv.sh)。
找到SET WEBLOGIC_CLASSPATH= 这行,把%WL_HOME%\server\lib\xfire-jsr181-api-1.0-M1.jar加在%WL_HOME%\server\lib\weblogic.jar前面,然后保存。重启weblogic问题一解决。
问题二:
问题一解决后以为万事大吉了,谁知调用接口时,新的问题来了。报:
java.lang.UnsupportedOperationException
at weblogic.xml.stax.XMLStreamReaderBase.getTextCharacters(XMLStreamRead
erBase.java:487)
问题二原因:
找了半天没找到真正原因,只知道大家都说接口返回是byte[]就会出现以上异常。
问题二解决方法:
这是个不完美的解决方法,需要更改接口,把byte[]用base64进行编码,编码后byte[]变成了String,然后客户端收到String后用base64解码成byte[]。异常不再出现,成功将文件通过webservice传输到客户端。希望有高人提出更好的解决方法供大家讨论。
2 楼 大猫阿Ken 2009-10-29
最近实验了一下新的解决方法,如下:
上面遇到的两个问题其实都是包加载顺序问题,解决方法不需要上面这么复杂。只需要在工程的/WEB-INF/weblogic.xml文件中作修改,让运行时先加载工程目录下的包就可以了,weblogic.xml的内容如下:
上面遇到的两个问题其实都是包加载顺序问题,解决方法不需要上面这么复杂。只需要在工程的/WEB-INF/weblogic.xml文件中作修改,让运行时先加载工程目录下的包就可以了,weblogic.xml的内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <wls:weblogic-web-app
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:wls="http://www.bea.com/ns/weblogic/90"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
- <wls:context-root>/</wls:context-root>
- <wls:container-descriptor>
- <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
- </wls:container-descriptor>
- </wls:weblogic-web-app>
- java.lang.NoSuchMethodError: javax.jws.WebService.portName()Ljava/lang/String
- weblogic jdk1.5部署CXF,java.lang.NoSuchMethodError:javax.jws.WebService.portName()Ljava/lang/String
- weblogic 9.2 与CXF Service,java.lang.NoSuchMethodError: javax.jws.WebService.portName()Ljava/lan g/String
- java.lang.NoSuchMethodError: javax.persistence.UniqueConstraint.name()Ljava/lang/String
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;
- java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLja
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getHeaders(Ljava/lang/String;)Lj
- java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
- NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String
- Object-C 中实现 Singleton (单例) 模式
- Java中四种XML解析技术
- TCP4次关闭状态
- 双赢的智慧----教是非常棒的学习方法
- 推荐好用的Jquery模板插件jTemplates
- java.lang.NoSuchMethodError: javax.jws.WebService.portName()Ljava/lang/String
- 用ZendStudioXDebug调试PHP程序
- 怎样在Xcode 4中添加 “add existing frameworks”
- awk 正则表达式、正则运算符详细介绍
- 半同步半异步模式以及Leader_Follwer模式
- strcpy(非安全性) ,strncpy ,strlcpy(转载)
- G530 CPU虚拟化试验
- GC安装错误3:agent无法secure(未解决)
- patch 文件操作