Java 解析Xml文档生成器

Java 解析Xml文档生成器,java,Java,我正在尝试使用documentbuilder将xml结果转换为字符串。为了从数据库中获取所有结果,我构建了以下函数,当我将它们存储在一个列表中并将它们发送到一个列表中时,一切正常,但是当我尝试将结果显示为字符串xml时,下一个错误出现了 WS00041: Service invocation threw an exception with message : null; Refer to the server log for more details Exceptions details : j

我正在尝试使用documentbuilder将xml结果转换为字符串。为了从数据库中获取所有结果,我构建了以下函数,当我将它们存储在一个列表中并将它们发送到一个列表中时,一切正常,但是当我尝试将结果显示为字符串xml时,下一个错误出现了

WS00041: Service invocation threw an exception with message : null; Refer to the server log for more details Exceptions details : java.lang.reflect.InvocationTargetException javax.servlet.ServletException: java.lang.reflect.InvocationTargetException at org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:342) at org.glassfish.webservices.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:106) at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:157) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:313) ... 32 more Caused by: com.sun.xml.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: java.lang.IllegalArgumentException: Can not set java.util.List field NewWebServiceMaterias.jaxws.GetMateriaResponse._return to java.lang.String Please see the server log to find more detail regarding exact cause of the failure. at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193) at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:131) at com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:253) at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:203) at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:290) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161) at com.sun.proxy.$Proxy283.getMateria(Unknown Source) ... 37 more WS00041:服务调用引发异常,消息为:null;有关详细信息,请参阅服务器日志 异常详细信息:java.lang.reflect.InvocationTargetException javax.servlet.ServletException:java.lang.reflect.InvocationTargetException 位于org.glassfish.webservices.monitoring.webservicesterservlet.doPost(webservicesterservlet.java:342) 位于org.glassfish.webservices.monitoring.webservicesterservlet.invoke(webservicesterservlet.java:106) 位于org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:157) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 位于org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 位于org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 位于com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 位于org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 在com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)上 位于com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 位于org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) 位于org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) 位于org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 位于org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 位于org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 在org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)上 在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 位于org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 位于org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 位于org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 位于org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 位于org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 位于org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 在java.lang.Thread.run(Thread.java:748)处,由以下原因引起:java.lang.reflect.InvocationTargetException 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 在org.glassfish.webservices.monitoring.webservicesterservlet.doPost(webservicesterservlet.java:313)。。。32多 原因:com.sun.xml.ws.fault.ServerSOAPFaultException:客户端从服务器接收到SOAP错误:java.lang.IllegalArgumentException:无法设置java.util.List字段NewWebServiceMaterias.jaxws.GetMaterialResponse.\u返回java.lang.String请查看服务器日志以查找有关故障确切原因的更多详细信息。 位于com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193) 位于com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:131) 在com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:253)上 位于com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:203) 位于com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:290) 位于com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) 位于com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92) 位于com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161) 在com.sun.proxy.$Proxy283.GetMateriala(未知来源)。。。37多 代码:

@WebMethod(operationName=“getmateriala”)
公共字符串getMaterial(){
Conexion c=新Conexion();
连接cn=c.Conectar();
材料清单;
弦门萨结;
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
文档生成器docBuilder;
试一试{
docBuilder=docFactory.newDocumentBuilder();
Document doc=docBuilder.newDocument();
元素根元素=doc.createElement(“材料”);
doc.appendChild(rootElement);
试一试{
语句st=cn.createStatement();
结果集rs=st.executeQuery(“从asignaturas中选择*);
Material=新阵列列表();
while(rs.next()){
物料添加(新物料)(rs.getInt(1)、rs.getString(2)、r
while (rs.next()) {
    materia.add(new Materia(rs.getInt(1), 
        rs.getString(2), rs.getString(3), rs.getString(4)));
    // skipped
    nombreMateria.appendChild(doc.createTextNode(rs.getString(3)));
    detMateria.appendChild(doc.createTextNode(rs.getString(4)));
    // skipped
}