我实际上是在基于spring 3.2.8和cxf 2.7.11的projet上工作,并在weblogic 12.1(JDK 1.7.0_21)和tomcat 8上运行。 Webservices是代码中的代码,首先使用CXF注释。
当我尝试在weblogic或Tomcat上运行我的Web应用程序时,我遇到了这个例外:
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
java.util.Map is an interface, and JAXB can't handle interfaces.
this problem is related to the following location:
at java.util.Map
at private java.util.Map fr.grdf.distribution.ws.interfaces.metier.approvisionnement.jaxws_asm.GetEotpCodeArticleByZddResponse._return
at fr.grdf.distribution.ws.interfaces.metier.approvisionnement.jaxws_asm.GetEotpCodeArticleByZddResponse
在weblogic上,我只需要在weblogic.xml配置文件中使用thoses配置类路径,一切正常:
<prefer-application-packages>
<package-name>org.apache.cxf.*</package-name>
</prefer-application-packages>
但是在tomcat上,我遇到了这个错误。 tomcat webapp和weblogic webapp之间的类路径的唯一区别是为tomcat添加了asm-3.3.1.jar(我得到了#34; java.lang.NoClassDefFoundError&#34;:org / objectweb / asm / ClassWriter execption)
有人有想法吗?
提前致谢
Webservice终点:
@WebService
@GZIP
public interface IApproLogWebService {
@WebMethod
Map<Long, String> getEotpCodeArticleByZdd(@WebParam(name = "articles") List<ArticleFicheApproLog> articles,
@WebParam(name = "zdd") Zdd zdd)
答案 0 :(得分:0)
我通过将jabx-xjc从2.2.1.1版本升级到2.2.10-b140310.1920版本来解决问题。
问候。