org.apache.axis.client.AdminClient.process()
是做什么的?
调用此功能时是否在幕后发生任何身份验证/授权?
我们有一个使用
Apache Axis 1
构建的基于 SOAP 的遗留 Web 服务。在应用程序启动时,Web 服务尝试使用 AdminClient.process() 自动部署。在我们的客户实施 sso 之前一切正常,现在 soap 服务抛出以下异常。
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (401)401
faultActor:
faultNode:
faultDetail:
{}:return code: 401
HTTP Status 401 – Unauthorized: The request has not been applied because it lacks valid authentication credentials for the target resource. VMware tc Runtime 9.0.65.A.RELEASE<
{http://xml.apache.org/axis/}HttpErrorCode:401
(401)401
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:1792)
at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
显然 SSO 配置不正确。但是 adminClient.process(String[] arg0)) 在内部做了什么?为什么它在仅调用 http url 时抱怨身份验证?
Java代码:
AdminClient ac = new AdminClient();
String result = ac.process(
new String[] {
"-p" + API_PORT,
"-l"+API_PROTOCOL+"://"+API_HOST+":"
+ API_PORT
+ "/"+CONTEXT+"/axis/AdminService",
deploymentdescriptorfile });
代码部署在VMware TC服务器