gpt4 book ai didi

eclipse - 如何修复 "Trying to write END_DOCUMENT when document has no root"错误?

转载 作者:行者123 更新时间:2023-11-28 22:19:02 26 4
gpt4 key购买 nike

我将继续 =)) 使用 Eclipse 在 Tomcat 7 上创建 jax-ws soap Web 服务(取得了不同程度的成功)。

我的 Eclipse“mavened”webapp 项目中有接口(interface):

@WebService(targetNamespace = "http://new.webservice.namespace", name = "MayaServiceInterface")
@XmlSeeAlso({ObjectFactory.class})
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface MayaServiceInterface {


@WebResult(name = "getPersonResponse", targetNamespace = "http://new.webservice.namespace", partName = "parameter")
public getPersonResponse getCustomer(
@WebParam(partName = "parameter", name = "getPersonRequest", targetNamespace = "http://new.webservice.namespace")
getPersonRequest parameter

);

}

和实现接口(interface)的类:

@javax.jws.WebService
(
serviceName = "ABCWsService",
portName = "ABCWsPort",
targetNamespace = "http://new.webservice.namespace",
endpointInterface = "com.mayacomp.ws.MayaServiceInterface")


public class MayaServiceEndPoindImpl implements MayaServiceInterface {

@Override
public getPersonResponse getCustomer(getPersonRequest parameter) {
// TODO Auto-generated method stub
return null;
}


} // end of class

当我尝试“在服务器上运行”网络服务时,我收到一个包含下一个信息的页面:

Web Services Endpoint Information Service Name: {http://new.webservice.namespace}ABCWsService Port Name: {http://new.webservice.namespace}ABCWsPort Address: http://localhost:8080/maya-web-service/ABCWs WSDL: http://localhost:8080/maya-web-service/ABCWs?wsdl Implementation class: com.mayacomp.ws.MayaServiceEndPoindImpl

当我点击 http://localhost:8080/maya-web-service/ABCWs?wsdl 时我在 Eclipse 控制台中收到 HTTP 500 错误和下一个信息:

may 05, 2015 7:08:16 PM com.sun.xml.ws.transport.http.servlet.WSServletDelegate doGet SEVERE: caught throwable java.io.IOException: Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document). at com.sun.xml.ws.server.SDDocumentImpl.writeTo(SDDocumentImpl.java:299) at com.sun.xml.ws.transport.http.HttpAdapter.publishWSDL(HttpAdapter.java:931) at com.sun.xml.ws.transport.http.HttpAdapter.handleGet(HttpAdapter.java:440) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:193) at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:161) at com.sun.xml.ws.transport.http.servlet.WSServlet.doGet(WSServlet.java:89) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: javax.xml.stream.XMLStreamException: Trying to write END_DOCUMENT when document has no root (ie. trying to output empty document). at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1518) at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1547) at com.ctc.wstx.sw.BaseStreamWriter._finishDocument(BaseStreamWriter.java:1373) at com.ctc.wstx.sw.BaseStreamWriter.close(BaseStreamWriter.java:243) at com.sun.xml.ws.util.xml.XMLStreamWriterFilter.close(XMLStreamWriterFilter.java:67) at com.sun.xml.ws.server.SDDocumentImpl.writeTo(SDDocumentImpl.java:297) ... 27 more

但我正在等待接收 wsdl(如果这听起来不奇怪的话)。请帮助我修复此错误并查看我的 wsdl。

最佳答案

问题是关于 stax-ex jar。

  • 您可以将 stax-ex-1.7.7.jar 放到您的库位置
  • 你可以添加 org.jvnet.staxex 网站 斯塔克斯 1.7.7

到你的 pom.xml

关于eclipse - 如何修复 "Trying to write END_DOCUMENT when document has no root"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30058588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com