我正在使用Axis2 1.6。在每个请求上,客户端都会对临时文件进行genetrating,从而导致磁盘空间问题。
我是否可以要求某人向我提供一些文章如何解决这个问题。
此致 琥珀
答案 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。