从Java调用.NETWebService

从Java调用.NETWebService,java,.net,web-services,Java,.net,Web Services,我有一个.Net Web服务,它返回一个自定义类,我们称之为“MyClass”,使用如下示例: [WebMethod] public MyClass sampleMethod() { return new MyClass(); } 当从.Net应用程序调用时,If工作正常 从使用AXIS的Java应用程序中,我得到错误“MyClass被引用但未定义” 如何克服这个问题?首先,您必须创建Java代理:这可以通过将axis指向Web服务WSDL位置来生成客户端来实现 您的Web服务可能如下

我有一个.Net Web服务,它返回一个自定义类,我们称之为“MyClass”,使用如下示例:

[WebMethod]
public MyClass sampleMethod()
{
    return new MyClass();
}
当从.Net应用程序调用时,If工作正常

从使用AXIS的Java应用程序中,我得到错误“MyClass被引用但未定义”


如何克服这个问题?

首先,您必须创建Java代理:这可以通过将axis指向Web服务WSDL位置来生成客户端来实现

您的Web服务可能如下所示:
http(s)://server:port/path/Service_def.asmx
并将
?wsdl
添加到wsdl定义的末尾(即,类似于
http(s)://server:port/path/Service_def.asmx?wsdl

从那里,生成和客户端并使用代理与.NETWeb服务通信



PS可能的原因是您的类未在命名空间中定义。检查您的WSDL定义,看看您的类是否有
,然后尝试向其添加
ns:
,并使用Axis生成java代理。

想到两件事:

  • 您缺少定义
    MyClass
  • 围绕
    MyClass

  • 如果您能发布WSDL和模式,人们将能够进一步帮助您。

    您是如何创建Java代理的?@Richard:我正在使用eclipse的“新Web服务客户端”功能创建Java代理。然后代理生成被中断。我对IntelliJ IDEA创建的Java 6 web服务客户端有很好的经验。为什么要使用Axis而不是JAX-WS(作为标准Java API的一部分)?我只是做了.Net部分。。。现在尝试帮助某人。您的“MyClass”声明为
    WebMethod
    。您不能将其声明为(像在java中一样,因为我不知道如何在.NET中执行)
    WebService
    XmlRootElement
    ?MyClass只是一个由名为“sampleMethod”的Webmethod返回的类。