我正在研究web服务。我想知道我们如何在JAX-WS类型的web服务中将头添加到SOAP请求中。
想想我的头球就像这样。
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Username", Collections.singletonList("aaaa"));
headers.put("Password", Collections.singletonList("aaaa"));
我的客户端类中有存根对象。我正在使用Apache Axis 2。所有的类都是自动生成的。
SimpleSTub stub = new Simplestub();
我想在客户端添加这个头信息。
MessageContext.HTTP_REQUEST_HEADERS, headers
编辑
正常类中的实际实现
私有静态最终字符串WS_URL=“http://localhost:9999/ws/hello?wsdl”;
public static void main(String[]args)引发异常{
URL URL=新URL(WS_URL);QName QName=新的QName(“http://ws.mkyong.com/”,“HelloWorlDimplService”);
Service service = Service.create(url, qname);
HelloWorld hello = service.getPort(HelloWorld.class);
/*******************UserName & Password ******************************/
Map<String, Object> req_ctx = ((BindingProvider)hello).getRequestContext();
req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, WS_URL);
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Username", Collections.singletonList("mkyong"));
headers.put("Password", Collections.singletonList("password"));
req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
/**********************************************************************/
System.out.println(hello.getHelloWorldAsString());
有谁能说出如何做到这一点。
多谢了。
你正在用你已有的东西找到解决办法。实现这一点的最基本方法是
>
在客户端代码中,通过SimpleStub
上的BindingProvider
获取对MessageContext
的引用
Map<String,Object> context = ((BindingProvder)stub).getRequestContext()
Map<String,List> headers = context.get(MessageContext.HTTP_REQUEST_HEADERS)
更新映射并将其填充回请求上下文对象
context.put(MessageContext.HTTP_REQUEST_HEADERS,headers)
以上都是不错的。但是,如果您试图添加身份验证参数,那么推荐的方法是
context.put(BindingProvder.USERNAME_PROPERTY,"username");
context.put(BindingProvder.PASSWORD_PROPERTY,"password");
我正在将我的java项目从Rabbit MQ迁移到Kafka(出于某些原因)。 在当前的工作流中,我将所有消息发布到rabbit mq exchange中,并根据消息的路由密钥将消息重定向到一个或多个队列中。我也想保留Kafka同样的功能。(我知道Kafka本来就不适合,但我想要一个变通办法)。 基本上,我想要这样的东西:每当一个主题接收到一个消息时,基于消息中存在的元,该消息应该被重定向到其他一
我是新手颤动,我使用Firebase消息发送通知到设备,我们使用Web API发送请求到Firebase发送通知和Firebase发送通知到Android。我想在通知标题和身体显示两个按钮(接受和拒绝)像瓦特应用程序通知标记为已读选项我想要这样的东西。 我添加的Android清单文件: 颤振码 Web api服务代码
我是springboot kafka的新手,我在这篇文章后面创建了一个例子。 https://www.codenotfound.com/spring-kafka-boot-example.html 我发现您可以将kafka元数据设置为标题,但这不符合我的目的。 我能做到这一点吗?如果可能的话,我很感激你能分享一个例子。
在纯模式下将Quarkus服务从版本 2.5 迁移到 2.6 时,我遇到了以下情况,如下所示: 我们有一个JAR,它包含几个服务使用的遍历对象的定义,其中包含javax.validation中使用的验证消息。约束:在名为ValidationMessages.properties的文件中定义的注释 在版本 2.5 之前,我可以将此 jar 作为服务依赖项的一部分,它执行服务的本机编译,并设法通过上下
null