我有一个托管在Windows服务器上的Web服务,我可以使用.net代码连接到该服务,我正在尝试使用Apache Axis2获取访问权限。我一直在使用clj-soap,它没有被维护但看起来中等稳定。
连接到服务端点工作即(soap / client-fn服务地址),但每当我尝试调用函数时,Axis2都会出现此异常:
org.apache.axis2.transport.http.HTTPSender sendViaPost
Unable to sendViaPost to url[MY-URL]
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
通过一些谷歌搜索,我遇到了像this这样的事情,它告诉我Windows需要一些身份验证或代理配置。我不确定服务器需要什么样的身份验证。 .net代码没有使用密码进行身份验证,所以我不知所措。
我正在寻找一些帮助来确定哪些信息可以让Axis2传递给服务器,以便我的程序可以与Web服务进行通信。
下面提供了C#代码作为参考。它使用ServiceModel库。
class Program {
private static MyService CreateServiceChannel () {
BasicHttpBinding binding = new BasicHttpBinding ( BasicHttpSecurityMode.Transport );
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
binding.MaxReceivedMessageSize = 204003200;
binding.ReaderQuotas.MaxArrayLength = 2147483647;
binding.ReaderQuotas.MaxStringContentLength = 2147483647;
EndpointAddress address = new EndpointAddress ( "https://...service.svc" );
ChannelFactory<MyService> channelFactory = new ChannelFactory<MyService> ( binding, address );
MyService channel = channelFactory.CreateChannel ();
return channel;
}
static void Main ( string[] args ) {
Console.WriteLine ( CreateMyChannel ().CallFunction ( 1 ) );
}
}