java - windows和linux下文件的区别

标签 java linux windows

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

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

我使用 Transformer 保存文件:

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);

最佳答案

我认为这与编码有关。

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

关于java - windows和linux下文件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17695069/

相关文章:

java - 如何使此面板向面板中间缩放?

java - 检查两个数组是否具有相同顺序的相同元素的方法

java - RxJava 与 AsyncTask 和 Activity 在 android

ruby - 安装 gem 时出现权限被拒绝的错误

c++ - CloseHandle 调用中的句柄异常无效?

java - 互递归题

linux - 如何在 Linux 服务器上从 Apache SVN 归档旧版本

php - 在 PHP7、ubuntu 上调用未定义函数 json_encode()、ctype_digit()

c++ - 信号处理程序和库工作线程

python - 用python锁定txt文件