我必须与在Axis 1.2上运行的Web服务进行通信(使用.NET)。使用两个.NET工具和WSDL我创建了C#代理但是我遇到了以下问题:
1)WSDL.exe创建了一个缺少方法输入参数的代理。例如如果应该有这样的方法:
AReturnType AMethod(AnInputType);
创建的代理有这样一种方法:
void AMethod();
2)我读过而不是WSDL.exe,建议使用SVCUTIL.exe。所以我用SVCUTIL创建了代理,但是遇到了返回NULL的infamous problem个对象。不幸的是我找不到合适的解决方案。
所以我愿意手动进行设置。这就是我所拥有的:
那你有什么建议?有没有办法以某种方式手动创建代理?或者生成的Java代码能以某种方式帮助我吗?
答案 0 :(得分:1)
以下是我正在处理的项目如何创建和使用手动代理。
这是客户端代理:
[ServiceContract(Name = "YourServiceContract", Namespace = "http://....")]
public interface YourServiceContract,
{
[OperationContract]
object GetObject(object searchCriteria);
}
public class YourClient : ClientBase<YourServiceContract>, YourServiceContract
{
public YourClient (){ }
public YourClient (string endpointConfigurationName)
: base(endpointConfigurationName){ }
public object GetObject(object searchCriteria)
{
return base.Channel.GetObject(searchCriteria);
}
}
这就是它的名称:
public void GetYourObject(object searchCriteria)
{
YourClient proxy = new YourClient();
proxy.GetObject(searchCriteria);
proxy.SafeClose();
}
答案 1 :(得分:0)
看看这个答案。允许你直接制作HttpRequest: -
答案 2 :(得分:0)
有一组predefined interop bindings将WCF客户端与Java世界中的服务连接起来。