gpt4 book ai didi

java - 我在哪里放置 axis2.xml 以供带有 soap 客户端的 jar 读取?

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:15 26 4
gpt4 key购买 nike

我在 jar 文件中有一个 java 控制台应用程序。它通过 axis2 调用肥皂服务.我正在使用 this blog作为例子。我添加的具体配置项如下:

<parameter name="Proxy">
<Configuration>
<ProxyHost>localhost</ProxyHost>
<ProxyPort>8888</ProxyPort>
</Configuration>
</parameter>

我尝试将其放入 jar 根目录中的 axis2.xml 文件中。我还编辑了 C:\Program Files\Apache Software Foundation\axis2-1.5.4\conf\axis2.xml

我的 AXIS2_HOME 设置正确:

set AXIS2_HOME
AXIS2_HOME=c:\Program Files\Apache Software Foundation\axis2-1.5.4

我确认流量肯定是通过 WireShark 直接发送到服务器的.

最佳答案

您遇到此问题是因为 JRE 无法找到配置文件。

是的,配置文件应该放在 jar 文件之外,因为程序无法读取 jar 文件(压缩)中的配置文件。

这里的问题是您必须将您的程序正确指向配置文件。

相对文件路径是从 Java 运行时环境的启动位置计算的。(我们应该使用相对文件路径,因为我们想避免使用绝对文件路径,因为并非每个人都有相同的系统环境,因此绝对文件路径在不同的环境中不起作用)

在这种情况下,如果你不确定你的 JRE 从哪里开始,导致你无法计算你的相对文件路径,你可以这样做:

File file = new File("");
System.out.println(file.getAbsolutePath());

这将帮助您找出 JRE 的启动位置。你应该知道相对文件路径是从你的 JRE 启动的目录计算的。

对于 axis2,工作目录(JRE 的启动位置)应该是 Apache Tomcat 的 bin 文件夹,而对于您的程序,它将取决于您调用 JRE 以启动程序的位置。

我建议您将配置文件放在易于访问的地方。假设您想使用 AXIS2_HOME,并且将您的配置文件放在 AXIS2_HOME 目录中,您可以在 jar 程序中执行以下操作以找到您的配置文件:

String value = System.getenv("AXIS2_HOME");    // gets the AXIS2_HOME environment variable
File file = new File(value+"/"+axis2.xml);

我想你明白我所说的要点了。希望有帮助! (:

关于java - 我在哪里放置 axis2.xml 以供带有 soap 客户端的 jar 读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com