【问题标题】:C# client fails to call Axis2 Java web serviceC# 客户端无法调用 Axis2 Java Web 服务
【发布时间】:2011-02-20 14:39:40
【问题描述】:

我有一个 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 是 未处理的消息 =“未知”
来源="mscorlib" 堆栈跟踪: 服务器堆栈跟踪: 在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc&rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串 动作,单向布尔值, ProxyOperationRuntime 操作, Object[] 输入,Object[] 输出,TimeSpan 暂停) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 方法调用、代理操作运行时 手术) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 信息) 在 [0] 处重新抛出异常: 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(消息数据& msgData,Int32 类型) 在 ConsumeNameWorldwideWebService.NameWorldwideClient.HIqualityNameWorldwidePortType.interpret(interpretRequest 要求) 在 ConsumeNameWorldwideWebService.NameWorldwideClient.HIqualityNameWorldwidePortTypeClient.ConsumeNameWorldwideWebService.NameWorldwideClient.HIqualityNameWorldwidePortType.interpret(interpretRequest 请求)在 c:\work\consumenameworldwidewebservice\consumenameworldwidewebservice\service 参考\名称worldwideclient\reference.cs:line 1131 在 ConsumeNameWorldwideWebService.Form1.button1_Click(对象 发件人,EventArgs e) 在 C:\work\ConsumeNameWorldwideWebService\ConsumeNameWorldwideWebService\Form1.cs:line 33 在 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs 事件) 在 System.Windows.Forms.Control.WmMouseUp(消息& m,MouseButtons 按钮,Int32 点击) 在 System.Windows.Forms.Control.WndProc(消息& 米) 在 System.Windows.Forms.ButtonBase.WndProc(消息& 米) 在 System.Windows.Forms.Button.WndProc(消息& 米) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(消息& 米) 在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr 参数) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& 味精) 在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID,Int32 原因,Int32 pvLoopData) 在 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 18 在 System.AppDomain._nExecuteAssembly(程序集 程序集,字符串 [] 参数) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在 System.Threading.ExecutionContext.Run(ExecutionContext 执行上下文,上下文回调 回调,对象状态) 在 System.Threading.ThreadHelper.ThreadStart() 内部异常:

服务器端异常:-

java.lang.IllegalArgumentException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native 方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。 爪哇:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.jav 答:194) 在 org.apache.axis2.rpc.receivers.RPCMessageReceiver.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.AxisServlet.doPost(AxisServlet.java:1 42) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:269) 在 org.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.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:215) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188) 在 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 艾娃:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j 艾娃:117) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:108) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav 答:174) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :873) 在 org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p 进程连接(Http11BaseProtocol.java:665) 在 org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo int.java:528) 在 org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol lowerWorkerThread.java:81) 在 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP ool.java:689) 在 java.lang.Thread.run(Thread.java:619) 2011-02-20 15:31:34,83​​7 [http-8080-Processor25] 错误 轴引擎 - org.apache.axis2.AxisFault 在 org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) 在 org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic (RPCMessageReceiver.java:161) 在 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.AxisServlet.doPost(AxisServlet.java:1 42) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:269) 在 org.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.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:215) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:188) 在 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 艾娃:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j 艾娃:117) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:108) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav 答:174) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :873) 在 org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p 进程连接(Http11BaseProtocol.java:665) 在 org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo int.java:528) 在 org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol lowerWorkerThread.java:81) 在 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP ool.java:689) 在 java.lang.Thread.run(Thread.java:619) 造成的: java.lang.IllegalArgumentException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native 方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。 爪哇:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.jav 答:194) 在 org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic (RPCMessageReceiver.java:102) ... 27 更多

任何帮助将不胜感激。

【问题讨论】:

  • 你能发布你的wsdl的相关部分吗? C# 和 Axis2 有时对 wsdls 的解释略有不同。

标签: c# web-services axis2


【解决方案1】:

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

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

而不是像现在这样单独传递参数?

【讨论】:

  • 是的,你是对的,但即便如此,我附加的例外情况也会中断。
猜你喜欢
  • 2014-01-18
  • 2010-09-20
  • 2017-04-05
  • 2014-09-04
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多