繁体   English   中英

C#客户端无法调用Axis2 Java Web服务

[英]C# client fails to call Axis2 Java web service

我有一个Axis2内置的Java Web服务,该服务可与Soap UI和CXF / Axis客户端配合使用。 我还需要使其与使用Microsoft Visual Studio 2008构建的.Net / C#客户端一起使用。

当我尝试通过Microsoft Visual Studio客户端使用该服务进行呼叫时,它失败了。

请查看Visual Studio代码:-

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ConsumeNameWorldwideWebService.NameWorldwideService;

namespace ConsumeNameWorldwideWebService
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            HIqualityNameWorldwidePortTypeClient client = new HIqualityNameWorldwidePortTypeClient();
            validateFamilyNameRequest req = new validateFamilyNameRequest();
            req.input = "Kumar";
            req.maxNumberOfSuggestions = 2;
            DetailedNameResult res = client.validateFamilyName("Kumar",null,2);

        }
    }
}

客户端例外:-

System.ServiceModel.FaultException未处理Message =“未知”
Source =“ mscorlib” StackTrace:服务器堆栈跟踪:位于System.ServiceModel.Channels.ServiceChannel.Call(位于System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime操作,ProxyRpc&rpc)(字符串操作,布尔型单向,ProxyOperationRuntime操作,对象[ System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作)在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息)处的ins,Object [] outs,TimeSpan超时)在[0]处重新引发异常: System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)处的System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg),位于ConsumeNameWorldwideWebService.NameWorldwideClient.HIqualityNameWorldwidePortType)处ConsumeNameWorldwideWebService.NameWorldwideClient.HIqualityNameWorldwidePortTypeClient.ConsumeNameWorldwideWebService.NameWorldwi 位于C:\\ work \\ ConsumeNameWorldwideWebService中ConsumeNameWorldwideWebService.Form1.button1_click(Object sender,EventArgs e)处的c:\\ work \\ consumenameworldwidewebservice \\ consumenameworldwidewebservice \\ service reference \\ nameworldwideclient \\ reference.cs:line中的deClient.HIqualityNameWorldwidePortType.interpret(interpretRequest request) \\ ConsumeNameWorldwideWebService \\ Form1.cs:第33行在System.Windows.Forms.Control.OnClick(EventArgs e)在System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)在System.Windows.Forms.Control.WmMouseUp(Message&m ,MouseButtons按钮,Int32单击)在System.Windows.Forms.ButtonBase.WndProc(Message&m)在System.Windows.Forms.Button.WndProc(Message&m)在System.Windows.Forms.Button.WndProc(Message&m)在System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)处System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)味精) System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32原因,ApplicationContext上下文) )在System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32原因,ApplicationContext上下文)在ConsumeNameWorldwideWebService.Program.Main()在C:\\ work \\ ConsumeNameWorldwideWebService \\ ConsumeNameWorldwideWebService \\ Program.cs:Line在System.AppDomain._nExecuteAssembly (在System.Threading.ExecutionContext.Run(在System.Threading.ThreadHelper.ThreadStart()处)在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()处的组装程序集,String [] args InnerException :

服务器端异常:-

java.lang.IllegalArgumentException处sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)处sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java: org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.jav a:194)处的lang.reflect.Method.invoke(Method.java:597)org.apache.axis2.rpc.receivers.RPCMessageReceiver处的。 org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMe ssageReceiver.java:114)处invokeBusinessLogic(RPCMessageReceiver.java:102)在org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusines sLogic(AbstractInOutMessageReceiver.java:40)在org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMe ssageReceiver.java:114) org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)位于org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReq uest(HTTPTransportUtils.java:167),位于org.apache.axis2.transport.http。 javax.servlet.http.HttpSer上的AxisServlet.doPost(AxisServlet.java:1 42) org的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:269)的javax.servlet.http.HttpServlet.service(HttpServlet.java:729)的vlet.service(HttpServlet.java:647) apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188)在org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:129)

  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl 

icationFilterChain.java:215)位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188)位于com.hi.openname.filter.OpenNameFilter.doFilter(OpenNameFilter.java:46)位于org.apache。在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188)处的catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:215)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve .java:213)位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:172)位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:127)位于org.apache。 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:108)上的catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j ava:117)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter。 Jav a:174),位于org.apache.coyote的org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)。 org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo int.java:528)的http11.Http11BaseProtocol $ Http11ConnectionHandler.p rocessConnection(Http11BaseProtocol.java:665)org.apache.tomcat.util.net.LeaderFollowerWorkerThread。 org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadP ool.java:689)处的runIt(LeaderFollowerWorkerThread.java:81)在java.lang.Thread.run(Thread.java:619)处2011- 02-20 15:31:34,83​​7 [http-8080-Processor25]错误AxisEngine-org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)处的org.apache.axis2.AxisFault(org.apache.axis2.rpc处) org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusines sLogic(AbstractInOutMessageReceiver.java:40)处的.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:161)在org.apache.axis2.receiverss.AbstractMessageReceiver.receive(Abstract :114),位于org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173),位于org.apache.axis2.transport.http.HTTPTransport org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:1 42)处的Utils.processHTTPPostReq uest(HTTPTransportUtils.java:167)在javax.servlet.http.HttpServlet.service(HttpServlet.java:647)在org.apache.catalina.core.ApplicationFilterChain.doFilter(在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:269)处的javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:129)上的ApplicationF ilterChain.java:188)

  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl 

icationFilterChain.java:215)位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188)位于com.hi.openname.filter.OpenNameFilter.doFilter(OpenNameFilter.java:46)位于org.apache。在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188)处的catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:215)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve .java:213)位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:172)位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:127)位于org.apache。 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:108)上的catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j ava:117)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter。 Jav a:174),位于org.apache.coyote的org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)。 org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo int.java:528)的http11.Http11BaseProtocol $ Http11ConnectionHandler.p rocessConnection(Http11BaseProtocol.java:665)org.apache.tomcat.util.net.LeaderFollowerWorkerThread。 org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadP ool.java:689)的runIt(LeaderFollowerWorkerThread.java:81)在java.lang.Thread.run(Thread.java:619)引起:sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处的java.lang.IllegalArgumentException sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。 位于org.apache.axis2.rpc.receivers.RPCUtil的java.lang.reflect.Method.invoke(Method.java:597)处位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)处org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)的invokeServiceClass(RPCUtil.jav a:194)... 27更多

任何帮助将非常感激。

快速思考:您不应该像这样传递Request对象:

HIqualityNameWorldwidePortTypeClient client = new HIqualityNameWorldwidePortTypeClient();
    validateFamilyNameRequest req = new validateFamilyNameRequest();
    req.input = "Kumar";
    req.maxNumberOfSuggestions = 2;
    DetailedNameResult res = client.validateFamilyName(req);

而不是像现在这样分别传递参数?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM