Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向所有结果jax-ws-client';在websphere(WAS)上的请求?_Java_Http Headers_Websphere_Jax Ws_Ibm Was - Fatal编程技术网

Java 如何向所有结果jax-ws-client';在websphere(WAS)上的请求?

Java 如何向所有结果jax-ws-client';在websphere(WAS)上的请求?,java,http-headers,websphere,jax-ws,ibm-was,Java,Http Headers,Websphere,Jax Ws,Ibm Was,我希望WebSphereWAS8.0.0.5将我的“Authorization:blabla”http头添加到服务的所有jax ws客户端请求中。我读过很多话题,但都不管用。我在websphere上部署了一个jax ws客户端。我已经创建了自己的应用程序策略集并附加到我的服务上,并且在HTTP传输的自定义属性中创建了与我的授权HTTP头绑定的通用客户端策略集。我将我的策略和绑定附加到我的客户端服务,但它不起作用。每次我都会遇到以下异常: 00000023 SOAPOverHTTPS E WS

我希望WebSphereWAS8.0.0.5将我的“Authorization:blabla”http头添加到服务的所有jax ws客户端请求中。我读过很多话题,但都不管用。我在websphere上部署了一个jax ws客户端。我已经创建了自己的应用程序策略集并附加到我的服务上,并且在HTTP传输的自定义属性中创建了与我的授权HTTP头绑定的通用客户端策略集。我将我的策略和绑定附加到我的客户端服务,但它不起作用。每次我都会遇到以下异常:

00000023 SOAPOverHTTPS E   WSWS7263E: The following exception occured: org.apache.axis2.AxisFault: HTTP ( 401 ) Unauthorized address : http://192.168.32.120:8280/hello/1/1
    at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.processStatusCode(SOAPOverHTTPSender.java:3659)
    at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:595)
    at com.ibm.ws.websvcs.transport.http.HTTPTransportSender.invoke(HTTPTransportSender.java:366)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:544)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
    at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:578)
    at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:127)
    at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:390)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:188)
    at $Proxy60.sayHello(Unknown Source)
    at com.lexa.HelloClient.doTest(HelloClient.java:36)
    at com.lexa.HelloClient.init(HelloClient.java:20)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
我的问题是,我不能修改客户端以编程方式插入我的头。有人能解释为什么websphere绑定不起作用吗


谢谢

您可以使用
BindingProvider
添加到
MessageContext.HTTP\u请求\u头中
您需要的内容

// Set up the request headers map.
Map<String, Object> requestHeaders = new HashMap<String, Object>();
requestHeaders.put("MyHeader1", "This is a string value");
requestHeaders.put("MyHeader2", new Integer(33));
requestHeaders.put("MyHeader3", new Boolean(true));

BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS, requestHeaders);
//设置请求头映射。
Map requestHeaders=new HashMap();
put(“MyHeader1”,“这是一个字符串值”);
put(“MyHeader2”,新的整数(33));
put(“MyHeader3”,新的布尔值(true));
BindingProvider bp=(BindingProvider)端口;
bp.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS,requestHeaders);
您还可以使用
com.ibm.websphere.webservices.Constants.REQUEST\u TRANSPORT\u PROPERTIES
作为键,它也应该可以正常工作

查看更多信息:

Poster说他们无法修改代码,正在寻找通过WebSphere绑定的仅配置方法。