从Java调用.NETWebService
我有一个.Net Web服务,它返回一个自定义类,我们称之为“MyClass”,使用如下示例:从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服务可能如下
[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返回的类。