0

我有一个非常特殊的问题。我需要将一些签名的 XML 发送到 Web 服务。我已经实现了签名,它采用 XML,对其进行签名,然后将其发送到服务。在我的电脑上一切正常,但是当我在服务器上部署应用程序时,我开始收到响应,签名错误。

我已经尝试将文件复制到我的电脑并再次发送,并且它有效。我是否认为操作系统可能以不同的格式存储文件并且这可能是导致错误的原因?我尝试在我的电脑和服务器上安装相同版本的 java,并尝试将文件保存在我的电脑上的 FAT32 分区上,但没有任何改变。

我使用变压器保存文件:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty("indent", "no");
transformer.setOutputProperty("standalone", "no");
result = new StreamResult(new FileOutputStream(newFile));
transformer.transform(new DOMSource(doc), result);

我将文件读入数据处理程序:

SendDocument sendDocument = new SendDocument();
sendDocument.setValue(new DataHandler(new ByteArrayDataSource(new FileInputStream(Util.signed(tempFolder, toSend)), "application/octet-stream")));
myService.sendDocument(sendDocument);
4

1 回答 1

0

我认为这与编码有关。

在您的服务器上尝试使用-D参数运行并设置file.encoding属性。( java -Dfile.encoding=Something...)

于 2013-07-17T08:54:37.627 回答