VS.NET是否可以在不生成包装结构的情况下使用Java WS?

VS.NET是否可以在不生成包装结构的情况下使用Java WS?,java,.net,web-services,wsdl,Java,.net,Web Services,Wsdl,在JavaEclipse中定义简单web服务并在VisualStudio中使用该服务时,生成的代码包含每个服务方法的请求和响应结构。生成的客户端接口具有接受请求结构并从响应结构返回值的方法 例如,如果我有一个带有addint a,int b方法的服务类SimpleTest,我将删除以下生成的接口注释: public interface ISimpleTest { MyNamespace.WebServiceProxy.addResponse add( MyNamespac

在JavaEclipse中定义简单web服务并在VisualStudio中使用该服务时,生成的代码包含每个服务方法的请求和响应结构。生成的客户端接口具有接受请求结构并从响应结构返回值的方法

例如,如果我有一个带有addint a,int b方法的服务类SimpleTest,我将删除以下生成的接口注释:

public interface ISimpleTest
{
    MyNamespace.WebServiceProxy.addResponse add(
        MyNamespace.WebServiceProxy.addRequest request);
}
但是,如果我创建与WCF web服务基本相同的类,则代码将生成以下接口:

public interface ISimpleTest 
{                
    int Add(int a, int b);
}

我想知道在使用Java服务时是否有避免使用包装类的方法。在XSD中定义数据类型会允许这样做吗?或者.NET在使用非.NET服务时总是生成这些包装器吗?我们希望绕过生成的客户机,自己实现接口,而不使用包装器。这可能吗?

如果我不得不猜测这是因为外部web服务的Visual Studio Java、Perl、Ruby等需要从该服务下载WSDL,然后基于WSDL生成.NET存根,WSDL是所有web服务的接口

使用WCF Web服务,它已经可以访问类等进行代理,因此不需要生成存根和骨架来调用Web服务

不过这只是一个猜测


不使用包装器的唯一方法是,您自己创建所有SOAP请求和响应,并通过原始HTTP将它们发送到web服务。这是一段混乱的代码,.NET包装器生成器存在的全部原因就是为了保护您免受混乱的影响

您完全可以使用WCF实现这一点。您应该能够在客户端定义接口,如下所示:

[ServiceContract]
public interface ISimpleTest
{
    [OperationContract]
    int Add(int a, int b);
}
从那里,您可以通过配置客户端的实现