我使用AXIS2创建的ADB-stub访问SOAP服务.我想记录服务返回的任何Axis Fault的原始XML响应.我可以将这些错误视为"ServiceError".但是,我找不到一种方法来检索原始XML(参见下面的示例).
我找到了一种使用getOMElement访问原始XML请求/响应以进行常规处理的方法(参见下面的示例).但是,这不适用于故障.
如何使用ADB存根获取原始XML错误?
示例Java代码:
public void testRequest(String URL) throws AxisFault {
MyServiceStub myservice = new MyServiceStub(URL);
MyRequest req = new MyRequest();
try {
TypeMyFunctionResponse response = myservice.myFunction(req);
// logging full soap response
System.out.println("SOAP Response: "
+ response.getOMElement(null,
OMAbstractFactory.getOMFactory())
.toStringWithConsume());
} catch (RemoteException e) {
//...
} catch (ServiceError e) {
// how to get the raw xml?
}
}
Run Code Online (Sandbox Code Playgroud)
示例故障响应,我想获取并记录:
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<soapenv:Fault>
<soapenv:Code>
<soapenv:Value>soapenv:Receiver</soapenv:Value>
</soapenv:Code>
<soapenv:Reason>
<soapenv:Text xml:lang="en-US">service error</soapenv:Text>
</soapenv:Reason>
<soapenv:Detail>
<ns1:error xmlns:ns1="http://www.somehost.com/webservices/someservice">
<ns1:code>500</ns1:code> …Run Code Online (Sandbox Code Playgroud) 我手头的任务是在 NodeJs 中读取 jpeg 文件并将其作为 http-response 发送以回答服务器请求。似乎是微不足道的。但是,我的第一个解决方案失败了。浏览器确实收到了一些二进制乱码,比原始文件大了大约 30%。
我的代码是(简化; res 是 SeverResponse 类型):
...
var fs = require('fs');
var stream = fs.createReadStream(pathToJPEG, {encoding: 'binary'});
res.setHeader('Content-Type', "image/jpeg");
stream.pipe(res);
...
Run Code Online (Sandbox Code Playgroud)
事实证明,到达浏览器的是我的源数据的 UTF-8 编码版本。我还能够排除响应对象是罪魁祸首。当我给它一个替代流(来自缓冲区,而不是文件)时,它工作得很好。
原来我的问题的解决方案是删除选项 {encoding: 'binary'}。我的浏览器收到了正确的图片:
...
var fs = require('fs');
var stream = fs.createReadStream(pathToJPEG);
res.setHeader('Content-Type', "image/jpeg");
stream.pipe(res);
...
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么?
第一个非工作版本应该是正确的似乎很直观,因为它明确声明了如何读取文件。
Java FX Scen Builder包含相当特殊形式的切换按钮。几个按钮在视觉上串联在一起,并由一条小的垂直线隔开:

我想知道这是怎么做到的。有人有什么主意吗?
我有一个打印不同长度的潜在长动态表。这些表格可能跨越多个页面。有时,一行会打印到下一页。出于美学原因,我想避免这种情况。
明确地说,我不问如何避免表格单元格或表格行内的分页符。这会很容易。
我(有点)熟悉 page-break-after、page-break-before、page-break-inside。我仍然没有完成。
这里有一些小提琴手来演示:https : //jsfiddle.net/jobe451/Lxb37ejr/10/
该提琴手打印的原始结果:http : //fiddle.jshell.net/jobe451/Lxb37ejr/10/show/
到目前为止,我最好的失败尝试是这个 HTML:
<tr class="row">
<td class="colLeft">left</td><td class="colRight">right</td>
</tr>
<tr class="row afterAvoid">
<td class="colLeft">left</td><td class="colRight">right</td>
</tr>
<tr class="row afterAvoid beforeAvoid">
<td class="colLeft">left</td><td class="colRight">right</td>
</tr>
<tr class="row afterAvoid beforeAvoid">
<td class="colLeft afterAvoid">left</td><td class="colRight afterAvoid">right</td>
</tr>
<tr class="row beforeAvoid">
<td class="colLeft beforeAvoid">left</td><td class="colRight beforeAvoid">right</td>
</tr>
</table>
</body>
Run Code Online (Sandbox Code Playgroud)
使用这个 CSS:
body {
widows: 3;
orphans: 3;
}
.afterAvoid {
page-break-after: avoid;
}
.beforeAvoid {
page-break-before: avoid;
}
Run Code Online (Sandbox Code Playgroud) 由于以下问题,我现在卡住了几天.我的用例是我有一个包含数百万个地址的数据库.从Web应用程序我想搜索它们,显示结果列表,然后显示有关单个地址的信息.一个重要目标是将搜索条件表示为URL的一部分.这样,用户可以返回到先前的搜索,甚至可以通过操纵URL来构建搜索.所以我希望有这样的URL:
http://localhost/#/searchresults?lastname=king&firstname=stephen&city=somecity
Run Code Online (Sandbox Code Playgroud)
我无法设置路由器来处理这些类型的URL.所有的尝试都以死路结束.如何让ember进入/ searchresults路由以及如何使用RESTAdapter将它转发到那些过滤器标准?