WebService本地可以正常调用但是发布到内网的另一台服务器上之后调用失败,求大神指导QAQ

yu_zhelei 2017-07-17 02:54:42
在浏览器中可以访问到wsdl的描述信息,通过eclipse自动生成的代码,调用方法时服务器那边抛出了这个错误,但是同样的代码我在本地用tomcat发布并调用却正常的返回了我需要的信息,刚接触webservice没多久,实在找不到原因QAQ
报错信息如下:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXException: Bad envelope tag: script
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Bad envelope tag: script
at org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:71)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3104)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at cn.com.weaver.services.webservices.WorkflowServiceHttpBindingStub.doCreateWorkflowRequest(WorkflowServiceHttpBindingStub.java:876)
at cn.com.weaver.services.webservices.WorkflowServicePortTypeProxy.doCreateWorkflowRequest(WorkflowServicePortTypeProxy.java:68)
at org.com.webservice.ChangeOrderServiceImpl.transData(ChangeOrderServiceImpl.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
at $Proxy15.transData(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:59)
at org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:320)
at org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:86)
at org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(ServiceInvocationHandler.java:134)
at org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:109)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
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.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:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:662)
...全文
701 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yu_zhelei 2017-07-19
  • 打赏
  • 举报
回复
找到原因了,因为我的代码里调用了另一个服务器上的webservice接口,在我本机上可以访问到,但是我发布的服务器上无法访问到那个webservice接口,所以在调用的时候报了这个异常QAQ,啊啊啊啊啊啊啊啊啊,好蠢。
yu_zhelei 2017-07-18
  • 打赏
  • 举报
回复
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/aaa/**" /> <mvc:exclude-mapping path="/WebService/*"/> <bean class="org.com.interceptor.Handler" /> </mvc:interceptor> </mvc:interceptors> 这样配置了,然后写了个Handler类,实现HandlerInterceptor接口,因为没有什么需要所以什么都没写,标红的应该是配置不拦截吧QAQ
引用 4 楼 yanghaimingg 的回复:
你是怎么排除拦截的,配置发来看下
mtian2020 2017-07-18
  • 打赏
  • 举报
回复
你是怎么排除拦截的,配置发来看下
yu_zhelei 2017-07-18
  • 打赏
  • 举报
回复
引用 1 楼 yanghaimingg 的回复:
应该是被拦截器拦截了吧,你在spring配置文件中增加一个配置,排除对该服务的拦截试试
我的代码原来是没有拦截器的,是spring内置的自带拦截嘛,我也不是很明白,我给他加了个拦截器,设置对webservice的访问路径不拦截,但是还是报相同的异常QAQ
yu_zhelei 2017-07-18
  • 打赏
  • 举报
回复
可是我代码里边没有配拦截器,我昨天特地加上了一个拦截器对这个路径不拦截,但是还是没用
yu_zhelei 2017-07-18
  • 打赏
  • 举报
回复
我用debug打了断点跟进去看到那个地址是正确的,没有?wsdl,这个代码是eclipse生成的一般也不会犯这个错误吧QAQ
mtian2020 2017-07-18
  • 打赏
  • 举报
回复
endpoint这个服务地址检查下,是不是带了?wsdl,去掉试试
yu_zhelei 2017-07-18
  • 打赏
  • 举报
回复
引用 6 楼 yanghaimingg 的回复:
客户端是怎么调用的发出来看下
<security:http pattern="/*" security="none" /> 我还照着网上说的在配置文件中添加spring security安全框架的不检查过滤,但是也没有用,还是报那个异常QAQ
yu_zhelei 2017-07-18
  • 打赏
  • 举报
回复
引用 6 楼 yanghaimingg 的回复:
客户端是怎么调用的发出来看下
ChangeOrderServicePortTypeProxy service = new ChangeOrderServicePortTypeProxy(); String requestId = service.transData(tabinfo); System.out.println(requestId); ChangeOrderServicePortTypeProxy 类是eclipse根据浏览器中访问webservice描述信息生成的,tabinfo对象的类也是这样生成的,我就直接拿来调用了transData方法,但是调用失败了。下面是自动生成的ChangeOrderServicePortTypeProxy 类 public class ChangeOrderServicePortTypeProxy implements org.com.webservice.ChangeOrderServicePortType { private String _endpoint = null; private org.com.webservice.ChangeOrderServicePortType changeOrderServicePortType = null; public ChangeOrderServicePortTypeProxy() { _initChangeOrderServicePortTypeProxy(); } public ChangeOrderServicePortTypeProxy(String endpoint) { _endpoint = endpoint; _initChangeOrderServicePortTypeProxy(); } private void _initChangeOrderServicePortTypeProxy() { try { changeOrderServicePortType = (new org.com.webservice.ChangeOrderServiceLocator()).getChangeOrderServiceHttpPort(); if (changeOrderServicePortType != null) { if (_endpoint != null) ((javax.xml.rpc.Stub)changeOrderServicePortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); else _endpoint = (String)((javax.xml.rpc.Stub)changeOrderServicePortType)._getProperty("javax.xml.rpc.service.endpoint.address"); } } catch (javax.xml.rpc.ServiceException serviceException) {} } public String getEndpoint() { return _endpoint; } public void setEndpoint(String endpoint) { _endpoint = endpoint; if (changeOrderServicePortType != null) ((javax.xml.rpc.Stub)changeOrderServicePortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); } public org.com.webservice.ChangeOrderServicePortType getChangeOrderServicePortType() { if (changeOrderServicePortType == null) _initChangeOrderServicePortTypeProxy(); return changeOrderServicePortType; } public java.lang.String transData(org.com.serviceobj.YFChangeTableInfo in0) throws java.rmi.RemoteException{ if (changeOrderServicePortType == null) _initChangeOrderServicePortTypeProxy(); return changeOrderServicePortType.transData(in0); } }
mtian2020 2017-07-18
  • 打赏
  • 举报
回复
客户端是怎么调用的发出来看下
mtian2020 2017-07-17
  • 打赏
  • 举报
回复
应该是被拦截器拦截了吧,你在spring配置文件中增加一个配置,排除对该服务的拦截试试

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧