• 使用CXF发布Web Service的错误


    1、
    Exception in thread "main" javax.xml.ws.WebServiceException: Unable to create JAXBContext
     at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:153)
     at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:83)
     at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:244)
     at com.sun.xml.internal.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:312)
     at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:178)
     at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:456)
     at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:475)
     at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:213)
     at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:143)
     at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:102)
     at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
     at com.ws.server.StudentServerTest.main(Unknown Source)
    Caused by: java.security.PrivilegedActionException: com.sun.xml.internal.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 public java.util.Map com.ws.jaxws.GetAllStudentResponse._return
      at com.ws.jaxws.GetAllStudentResponse
    java.util.Map does not have a no-arg default constructor.
     this problem is related to the following location:
      at java.util.Map
      at public java.util.Map com.ws.jaxws.GetAllStudentResponse._return
      at com.ws.jaxws.GetAllStudentResponse

     at java.security.AccessController.doPrivileged(Native Method)
     at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:140)
     ... 11 more
    Caused by: com.sun.xml.internal.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 public java.util.Map com.ws.jaxws.GetAllStudentResponse._return
      at com.ws.jaxws.GetAllStudentResponse
    java.util.Map does not have a no-arg default constructor.
     this problem is related to the following location:
      at java.util.Map
      at public java.util.Map com.ws.jaxws.GetAllStudentResponse._return
      at com.ws.jaxws.GetAllStudentResponse

     at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:91)
     at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:436)
     at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:277)
     at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1100)
     at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)
     at com.sun.xml.internal.bind.api.JAXBRIContext.newInstance(JAXBRIContext.java:95)
     at com.sun.xml.internal.ws.developer.JAXBContextFactory$1.createJAXBContext(JAXBContextFactory.java:97)
     at com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:148)
     at com.sun.xml.internal.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:140)
     ... 13 more

    在发布一个webservice的时候出现如上异常,在这里贴一下解决方法:

    原因:在做webServices复杂类型值传递时,返回值的类型不可以用接口类型。例如List应该改为ArrayList,Map改为HashMap等。

    2、发布成功,但是时不时会跳出如下消息

    Caused by: java.lang.IllegalArgumentException: prefix wsdp is not bound to a namespace
    at com.sun.xml.bind.DatatypeConverterImpl._parseQName(DatatypeConverterImpl.java:369)
    at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$23.parse(RuntimeBuiltinLeafInfoImpl.java:817)
    ... 40 more
    DefaultValidationEventHandler: [ERROR]: prefix wsdp is not bound to a namespace 
         Location:  node: [wsd:Types: null]
    DefaultValidationEventHandler: [ERROR]: prefix wsdp is not bound to a namespace 
         Location:  node: [wsd:Types: null]
    javax.xml.bind.UnmarshalException: prefix wsdp is not bound to a namespace
     - with linked exception:

    解决方法:

    删除以下4个jar包

    cxf-services-ws-discovery-api-3.1.4.jar

    cxf-services-ws-discovery-service-3.1.4.jar

    cxf-services-wsn-api-3.1.4.jar

    cxf-services-wsn-core-3.1.4.jar

  • 相关阅读:
    几种 HtmlEncode 的区别
    Javascript 编程风格
    asp.net ckeditor 无法获取值
    Silverlight:Deep Zoom 文件格式概述
    js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交,兼容IE、FF浏览器)
    什么是 HTTP Headers?
    ServerVariables
    SQL Server 查询不重复id的数据记录
    因为安全原因,文件不可浏览. 请联系系统管理员并检查CKFinder配置文件
    浏览器鼠标手势原理简析
  • 原文地址:https://www.cnblogs.com/huadiyatou/p/7729186.html
Copyright © 2020-2023  润新知