JAVA SAP JCO3.0 抛出这个异常:java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA SAP JCO3.0 抛出这个异常:java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path相关的知识,希望对你有一定的参考价值。

我已经把sapjcp3.jar导入到项目中;
本地的写的测试程序能够成功连上SAP,一放到WEB环境下就不行了,抛出这个异常。
Weblogic
no sapjco3 in java.library.path

参考技术A 什么异常啊 贴来看看

把sap的dependency 包放到runtime server的路径中,让server能找到他们,然后重启server追问

是说放到weblogic的bin的目录下吧,不行啊!

追答

应该是lib目录,bin目录方的是dll 动态库
还有就是 你的机器是否使用过 不同版本的sapjco 如果是的话 把他们都清干净 包括windows/system32 下的动态库
最后一点,你打动态哭的补丁了么? 在sap官网上有for sapjco3的dll库的补丁

使用 SAX 解析 XML |如何处理特殊字符?

【中文标题】使用 SAX 解析 XML |如何处理特殊字符?【英文标题】:XML parsing with SAX | how to handle special characters? 【发布时间】:2011-01-28 21:32:21 【问题描述】:

我们有一个 JAVA 应用程序,它从 SAP 中提取数据,对其进行解析并呈现给用户。 使用 JCO 连接器提取数据。

最近我们被抛出了一个异常:

org.xml.sax.SAXParseException: Character reference "&#00" is an invalid XML character.

因此,我们计划编写一个新的间接级别,在解析 XML 之前替换所有特殊/非法字符。

我的问题是:

    是否有任何现有的(开源)实用程序可以完成这项工作以替换 XML 中的非法字符? 或者如果我必须编写这样的实用程序,我应该如何处理它们? 为什么会抛出上述异常?

谢谢。

【问题讨论】:

那么来自 JCO 的数据是 XML 格式吗?您正在解析它吗?或者您是在获取名称或其他内容,然后将其写入 XML 文档,然后进行解析? @Tom:JCO 有 Record.toXML() 方法,以 XML 格式提供数据。 只是出于好奇 - 是否有特殊原因导致您经历了将数据转换为 XML 然后再返回的所有痛苦和 CPU 周期? @vwegert:好问题。让我承认我们不知道迭代 JCO.Fields 的 JCO API,并认为 toXML() 可能只是我们的工作。 ...好的。我真的不知道该说什么。抱歉,JCo 附带 API 文档、示例程序和 PDF 教程。有人没有阅读并理解如何使用它,而是认为“让我们在其中添加一些 XML”。真的不知道该笑还是该哭…… 【参考方案1】:

从我的角度来看,源 (SAP) 应该进行替换。否则,它传输到您的程序的内容可能看起来像 XML,但不是。

虽然将 '&' 替换为 '&' 可以通过对字符串 from to toXML() 调用的简单 String.replaceAll(...) 来完成,但其他字符可能更难替换('' 为例)。

问候 纪尧姆

【讨论】:

【参考方案2】:

这听起来像是他们逃跑的错误。根据上下文,您最好只编写自己版本的使用真正 XML 库的 XMLWriter 类,而不是像 SAP 开发人员那样尝试编写自己的 XML 实用程序。

或者,查看字符代码 ,您也许可以将其全部替换为空字符串:

String goodXml = badXml.replaceAll("�", "");

【讨论】:

【参考方案3】:

我有一个related, but opposite problem,我试图将字符 1 插入到 XSLT 转换的输出中。我考虑过用零替换标记的后处理,但选择使用 xsl:param。

如果我遇到你的情况,我会想出一个定制的编码,替换 XML 中无效的字符,并在你的解析中将它们作为特殊情况处理,或者如果可能的话,用空格替换它们。

我没有使用 JCO 的经验,因此无法建议如何或在何处替换无效字符。

【讨论】:

【参考方案4】:

您可以使用 Apache Commons Lang 类 StringEscapeUtils escapeXML 方法对 XML 中的非 ASCII 字符进行编码/解码。见:

http://commons.apache.org/lang/api-2.4/index.html

要了解 XML 字符引用的工作原理,请在 wikipedia 上搜索“数字字符引用”。

【讨论】:

以上是关于JAVA SAP JCO3.0 抛出这个异常:java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path的主要内容,如果未能解决你的问题,请参考以下文章

JCo for SAP中的嵌套结构?

异常库

Java学习笔记3.10.3 异常处理 - 抛出异常

捕获Java线程池执行任务抛出的异常

周总结

Java技术指南「技术盲区」看看线程以及线程池的异常处理机制都有哪些?