123sw 发表于 2017-2-20 11:55:13

resin下发布基于jax-ws的webservice

  刚学习了一下webservice,基于jax-ws建立webservice相对简单,如果童靴不懂,可以参考
译文:myeclipse6.5上基于JAX-WS开发Webservice(中文示例)
  讲的比较详细,这里就不作叙述了,在resin下发布,其他都跟其他工程是一样的,就是要把
  JAX-WS所需要的包webservices-api.jar,webservices-extra.jar,webservices-extra-api.jar,webservices-rt.jar,webservices-tools.jar拷贝到lib目录下。这时候启动resin,会报一个错误
  19:51:50.917] {Main Thread} WSSERVLET11: failed to parse runtime descriptor: java.lang.ExceptionInInitializerError
{Main Thread} java.lang.ExceptionInInitializerError
{Main Thread}     at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:144)
{Main Thread}     at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:108)
{Main Thread}     at com.caucho.server.webapp.WebApp.start(WebApp.java:1866)
{Main Thread}     at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:667)
{Main Thread}     at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
{Main Thread}     at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
{Main Thread}     at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
{Main Thread}     at com.caucho.server.webapp.WebAppContainer.start(WebAppContainer.java:659)
{Main Thread}     at com.caucho.server.host.Host.start(Host.java:450)
{Main Thread}     at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:667)
{Main Thread}     at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
{Main Thread}     at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
{Main Thread}     at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
{Main Thread}     at com.caucho.server.host.HostContainer.start(HostContainer.java:484)
{Main Thread}     at com.caucho.server.cluster.Server.start(Server.java:1319)
{Main Thread}     at com.caucho.server.cluster.Cluster.startServer(Cluster.java:710)
{Main Thread}     at com.caucho.server.cluster.ClusterServer.startServer(ClusterServer.java:542)
{Main Thread}     at com.caucho.server.resin.Resin.start(Resin.java:703)
{Main Thread}     at com.caucho.server.resin.Resin.initMain(Resin.java:1162)
{Main Thread}     at com.caucho.server.resin.Resin.main(Resin.java:1365)
{Main Thread} Caused by: java.lang.IllegalArgumentException: property "javax.xml.stream.supportDTD" not supported
{Main Thread}     at com.caucho.xml.stream.XMLInputFactoryImpl.setProperty(XMLInputFactoryImpl.java:265)
{Main Thread}     at com.sun.xml.ws.api.streaming.XMLStreamReaderFactory.<clinit>(XMLStreamReaderFactory.java:89)
{Main Thread}     at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:144)
…………
  看网上好多人找这个问题,解决办法是在resin.conf配置修改一行代码
  <!-- Uncomment to use Resin's XML implementations
     -
     - <system-property javax.xml.parsers.DocumentBuilderFactory
     -                 ="com.caucho.xml.parsers.XmlDocumentBuilderFactory"/>
     - <system-property javax.xml.parsers.SAXParserFactory
     -                 ="com.caucho.xml.parsers.XmlSAXParserFactory"/>
    -->
  已经使用,就替换下面,如果没有使用,就加上下面的配置
  <system-property javax.xml.stream.XMLInputFactory="com.sun.xml.internal.stream.XMLInputFactoryImpl" />
  重新启动,成功,可以客户端调用了
  
页: [1]
查看完整版本: resin下发布基于jax-ws的webservice