- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在将 XML 字符串转换为 SOAPMessage。但是,在尝试调用该服务时,我最终得到了 NullPointerException。单步执行代码时,我可以看出它正在尝试为此 uri 命名空间设置空前缀:“urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0”。
代码:
//PORT_NAME={urn:ihe:iti:xds-b:2007}RespondingGateway_Port_Soap12
//SERVICE_NAME={urn:ihe:iti:xds-b:2007}RespondingGateway_Service
Service service = Service.create(SERVICE_NAME);
service.addPort(PORT_NAME, SOAPBinding.SOAP12HTTP_BINDING, endpointUrl);
Dispatch<SOAPMessage> dispatch = service.createDispatch(PORT_NAME,
SOAPMessage.class, Service.Mode.MESSAGE);
squashWSA(dispatch);
addHttpHeaders(dispatch, messageId);
//set the request timeout value
dispatch.getRequestContext().put(JAXWSProperties.CONNECT_TIMEOUT, haimsConnectTimeout);
dispatch.getRequestContext().put(JAXWSProperties.REQUEST_TIMEOUT, haimsReceiveTimeout);
byte[] msgBytes = domToBytes(rawSoapRqst);
MessageFactory mf = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
SOAPMessage request = mf.createMessage(new MimeHeaders(), new ByteArrayInputStream(msgBytes));
SOAPMessage response = dispatch.invoke(request);
堆栈跟踪:
java.lang.NullPointerException
at com.sun.xml.messaging.saaj.soap.impl.ElementImpl.addNamespaceDeclaration(ElementImpl.java:528)
at com.sun.xml.ws.api.message.saaj.SaajStaxWriter.writeNamespace(SaajStaxWriter.java:193)
at com.sun.xml.ws.util.xml.XMLStreamReaderToXMLStreamWriter.handleStartElement(XMLStreamReaderToXMLStreamWriter.java:215)
at com.sun.xml.ws.util.xml.XMLStreamReaderToXMLStreamWriter.bridge(XMLStreamReaderToXMLStreamWriter.java:124)
at com.sun.xml.ws.message.stream.StreamMessage.writePayloadTo(StreamMessage.java:381)
at com.sun.xml.ws.message.stream.StreamMessage.writeEnvelope(StreamMessage.java:417)
at com.sun.xml.ws.message.stream.StreamMessage.writeTo(StreamMessage.java:395)
at com.sun.xml.ws.api.message.MessageWrapper.writeTo(MessageWrapper.java:230)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.readAsSOAPMessage(SAAJFactory.java:279)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.readAsSAAJ(SAAJFactory.java:206)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.read(SAAJFactory.java:195)
at com.sun.xml.ws.message.AbstractMessageImpl.toSAAJ(AbstractMessageImpl.java:200)
at com.sun.xml.ws.api.message.MessageWrapper.readAsSOAPMessage(MessageWrapper.java:180)
at com.sun.xml.ws.client.dispatch.SOAPMessageDispatch.toReturnValue(SOAPMessageDispatch.java:104)
at com.sun.xml.ws.client.dispatch.SOAPMessageDispatch.toReturnValue(SOAPMessageDispatch.java:75)
at com.sun.xml.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:289)
at com.sun.xml.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:304)
at com.domain.wrapper.h.Queryh.queryh(Queryh.java:87)
at com.domain.wrapper.h.QueryhTest.test(QueryhTest.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
SOAP 消息:
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To>https://service.com:8443/ABC</wsa:To>
<wsa:Action>urn:ihe:iti:2007:CrossGatewayQuery</wsa:Action>
<wsa:ReplyTo>
<wsa:Address>urn:ihe:iti:2007:CrossGatewayQuery</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID>325b321a-5080-11e3-9c3c-6bf842da5cba</wsa:MessageID>
<!-- These must be namespace-qualified
<xxx-transaction-id>325d7c0b-5080-11e3-9c3c-6bf842da5cba</xxx-transaction-id>
<xxx-fullname>Brandon L Cooper</xxx-fullname>
<xxx-sitename>HAIMS2</xxx-sitename>
<xxx-sitenumber>0001</xxx-sitenumber>
<xxx-ssn>999428882</xxx-ssn>
<xxx-purpose-of-use>Routine Medical Care</xxx-purpose-of-use>
-->
</soap:Header>
<soap:Body>
<query:AdhocQueryRequest xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns:urn="urn:ihe:iti:xds-b:2007" xmlns:urn2="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0">
<rim:AdhocQuery xmlns:urn3="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
<rim:Slot name="$XDSDocumentEntryPatientId">
<rim:ValueList>
<rim:Value>'340993^^^&2.16.840.1.113883.3.42.10002.1&ISO'</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryStatus">
<rim:ValueList>
<rim:Value>'urn:oasis:names:tc:ebxml-regrep:StatusType:Approved'</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryClassCode">
<rim:ValueList>
<rim:Value>'51851-4'</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryClassCodeScheme">
<rim:ValueList>
<rim:Value>'LOINC'</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryCreationTimeFrom">
<rim:ValueList>
<rim:Value/>
</rim:ValueList>
</rim:Slot>
<rim:Slot name="$XDSDocumentEntryCreationTimeTo">
<rim:ValueList>
<rim:Value/>
</rim:ValueList>
</rim:Slot>
</rim:AdhocQuery>
</query:AdhocQueryRequest>
</soap:Body>
</soap:Envelope>
最佳答案
事实证明这是一个类路径问题。我的应用程序具有对 Xerces 的传递依赖项,但 WebLogic wlfullclient.jar 依赖项已经具有 JAXP。我使用依赖项“exclusions”配置来删除传递性 Xerces 依赖项(“xerces”的 groupId 和代码中其他位置的“xml-apis”),问题就消失了。顺便说一句,在代码更改之前,测试是从命令行进行的,而不是从 Eclipse 进行。加载类的差异可能会导致不同的结果。
关于java - 将 SOAP 字符串消息转换为 SoapMessage 时出现 NullPointer 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37838365/
我一直在读到,如果一个集合“被释放”,它也会释放它的所有对象。另一方面,我还读到,一旦集合被释放,集合就会释放它的对象。 但最后一件事可能并不总是发生,正如苹果所说。系统决定是否取消分配。在大多数情况
我有一个客户端-服务器应用程序,它使用 WCF 进行通信,并使用 NetDataContractSerializer 序列化对象图。 由于服务器和客户端之间传输了大量数据,因此我尝试通过微调数据成员的
我需要有关 JMS 队列和消息处理的帮助。 我有一个场景,需要针对特定属性组同步处理消息,但可以在不同属性组之间同时处理消息。 我了解了特定于每个属性的消息组和队列的一些知识。我的想法是,我想针对
我最近开始使用 C++,并且有一种强烈的冲动 #define print(msg) std::cout void print(T const& msg) { std::cout void
我已经为使用 JGroups 编写了简单的测试。有两个像这样的简单应用程序 import org.jgroups.*; import org.jgroups.conf.ConfiguratorFact
这个问题在这里已经有了答案: Firebase messaging is not supported in your browser how to solve this? (3 个回答) 7 个月前关
在我的 C# 控制台应用程序中,我正在尝试更新 CRM 2016 中的帐户。IsFaulted 不断返回 true。当我向下钻取时它返回的错误消息如下: EntityState must be set
我正在尝试通过 tcp 将以下 json 写入 graylog 服务器: {"facility":"GELF","file":"","full_message":"Test Message Tcp",
我正在使用 Django 的消息框架来指示成功的操作和失败的操作。 如何排除帐户登录和注销消息?目前,登录后登陆页面显示 已成功登录为“用户名”。我不希望显示此消息,但应显示所有其他成功消息。我的尝试
我通过编写禁用qDebug()消息 CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT 在.pro文件中。这很好。我想知道是否可以
我正在使用 ThrottleRequest 来限制登录尝试。 在 Kendler.php 我有 'throttle' => \Illuminate\Routing\Middleware\Throttl
我有一个脚本,它通过die引发异常。捕获异常时,我想输出不附加位置信息的消息。 该脚本: #! /usr/bin/perl -w use strict; eval { die "My erro
允许的消息类型有哪些(字符串、字节、整数等)? 消息的最大大小是多少? 队列和交换器的最大数量是多少? 最佳答案 理论上任何东西都可以作为消息存储/发送。实际上您不想在队列上存储任何内容。如果队列大部
基本上,我正在尝试创建一个简单的 GUI 来与 Robocopy 一起使用。我正在使用进程打开 Robocopy 并将输出重定向到文本框,如下所示: With MyProcess.StartI
我想将进入 MQ 队列的消息记录到数据库/文件或其他日志队列,并且我无法修改现有代码。是否有任何方法可以实现某种类似于 HTTP 嗅探器的消息记录实用程序?或者也许 MQ 有一些内置的功能来记录消息?
我得到了一个带有 single_selection 数据表和一个命令按钮的页面。命令按钮调用一个 bean 方法来验证是否进行了选择。如果不是,它应该显示一条消息警告用户。如果进行了选择,它将导航到另
我知道 MSVC 可以通过 pragma 消息做到这一点 -> http://support.microsoft.com/kb/155196 gcc 是否有办法打印用户创建的警告或消息? (我找不到谷
当存在大量节点或二进制数据时, native Erlang 消息能否提供合理的性能? 情况 1:有一个大约 50-200 台机器的动态池(erlang 节点)。它在不断变化,每 10 分钟大约添加或删
我想知道如何在用户登录后显示“欢迎用户,您已登录”的问候消息,并且该消息应在 5 秒内消失。 该消息将在用户成功登录后显示一次,但在同一 session 期间连续访问主页时不会再次显示。因为我在 ho
如果我仅使用Welcome消息,我的代码可以正常工作,但是当打印p->client_name指针时,消息不居中。 所以我的问题是如何将消息和客户端名称居中,就像它是一条消息一样。为什么它目前仅将消
我是一名优秀的程序员,十分优秀!