Axis2临时文件

时间:2012-01-17 12:26:45

标签: axis2

我正在使用Axis2 1.6。在每个请求上,客户端都会对临时文件进行genetrating,从而导致磁盘空间问题。

我是否可以要求某人向我提供一些文章如何解决这个问题。

此致 琥珀

2 个答案:

答案 0 :(得分:1)

我用Axis2 1.6.3遇到了这个问题。我使用Addressing模块(org.apache.axis2:addressing:1.6.3:jar:classpath-module)。

我的整个着色JAR被复制到临时目录中,如果Java进程崩溃,则不会被删除,因此磁盘使用量不受限制。

我解决此问题的方法是使用Axis2手动注册模块,而不是让它自动注册,因此它会跳过将临时JAR写入磁盘。

我使用了Axis2&{39} ModuleDeployer.deploy()DeploymentEngine.addNewModule()的逻辑。

创建临时文件的旧代码

ConfigurationContext context = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);

MyExampleStub myExampleStub = new MyExampleStub(context, mySoapUri);
myExampleStub._getServiceClient().engageModule("addressing");

不创建临时文件的新代码

ConfigurationContext context = ConfigurationContextFactory.createDefaultConfigurationContext();
AxisConfiguration axisConfiguration = context.getAxisConfiguration();

AxisModule addressing = new AxisModule("addressing");
addressing.setParent(axisConfiguration);
addressing.setModuleClassLoader(getClass().getClassLoader());
InputStream moduleXmlInputStream = getClass().getResourceAsStream("META-INF/module.xml");
new ModuleBuilder(moduleXmlInputStream, addressing, axisConfiguration).populateModule();
DeploymentEngine.addNewModule(addressing, axisConfiguration);

MyExampleStub myExampleStub = new MyExampleStub(context, mySoapUri);
myExampleStub._getServiceClient().engageModule("addressing");

现在我仍然在传出请求<wsa:To>中看到预期的<wsa:MessageID><wsa:Action><Header>元素,但我的临时目录不包含任何{ {1}}目录或axis2-tmp-6160203768737879650.tmp个文件。

答案 1 :(得分:0)

这个版本是由版本1.7.0修复的bug