java - 尝试通过另一个外部 jar 引用外部 jar - httpcore 通过 httpclient

标签 java jar classpath osb

在 Eclipse 中运行 junit 时,这一切都工作正常。当我将 jar 部署到 Oracle Serviec Bus 并通过代理调用它时,我遇到了问题。

我的jar使用httpClient和httpCore,httpClient也对httpCore有一些依赖。当 httpclient 引用 httpcore 而没有从我的 jar 中引用时,就会出现问题。我已经通过编辑 httpclient 的 list 以获取 httpcore jar 来证明外部 jar 引用了另一个 jar。如果我这样做,一切都会有效,但我不想像您期望的那样手动编辑外部 jar!

我的 list 设置了这个类路径: 类路径:httpcore-4.3.jar httpclient-4.3.1.jar DatabaseUtil-1.0.jar commons-codec-1.8.jar

我正在努力将 jar 添加到服务器的类路径中,我认为这会起作用,但检查是否有另一种方法可以做到这一点,因为有其他服务/jar 使用相同的 jvm。我复制了下面的测试类来显示问题证明

非常感谢任何帮助。

谢谢, 丹尼尔。

public class CheckHTTPJars {

  public static String checkHttpJarsLoaded()
  {

    try {
        System.out.println("Starting...");
        System.out.println("classpath: " + System.getProperty("java.class.path"));

        HttpHost host = new HttpHost("test");

        System.out.println("Hit HTTPCore... ");

        BasicResponseHandler b = new BasicResponseHandler();

        System.out.println("Hit HTTPClient... ");

        HttpGet get = new HttpGet();

        System.out.println("Hit HTTPClient but referencing HttpCore... ");

        HttpRequest h = null;

        System.out.println("Hit HTTPCore... ");


        return("Passed");
    } catch (Exception e) {
        return (e.getMessage());
    }

  } 
}

最佳答案

  1. 您是否使用 OSB java callout Activity ?

  2. 您是否遇到找不到类(或其他异常)?

  3. DatabaseUtil-1.0.jar是什么,是你制作的并在callout中使用的吗?

我认为这个答案中这些问题的答案是正确的。

您需要两个(未修改的)jar 才能使您的代码正常工作。

如果您不想将这两个 jar 放在服务器类路径中(Oracle 建议将其用于常见工件),您可以将它们与标注中使用的自定义 jar 捆绑在一起。这可能没问题(取决于用例),因为两个 jar 总共约为 1MB。请参阅How can I create an executable JAR with dependencies using Maven?

请记住,您需要 commons-codec 和这两个的其他一些依赖项,请检查 http://mvnrepository.com/完整列表。

关于java - 尝试通过另一个外部 jar 引用外部 jar - httpcore 通过 httpclient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837934/

相关文章:

java - 在grails中生成与原始Domain类具有相同字段的新Domain类

java - 在 Java Spring 框架中从字符串调用存储库

java - NavigableMap - 根据值进行比较

java - 如何使用 eclipse 将图像添加到 java 项目中?

java - 安卓 - PDF Int。 - 新实例失败 - 无法实例化

java - 如何从 sbt 中发现定义类的库?

Java删除ZipEntry

java - 无法从maven中安装的jar加载类

java - OSGi 中如何处理 Java 认可的目录机制?

java - 以编程方式运行 TestNG,出现 "Cannot find class in classpath"异常