Я столкнулся с этой проблемой с Axis2 1.6.3.Я использую модуль Addressing (org.apache.axis2:addressing:1.6.3:jar:classpath-module
).
Весь мой затененный JAR копировался во временный каталог и не удалялся, если процесс Java когда-либо падал, поэтому использование диска рослоunchecked.
Мой подход к решению этой проблемы состоял в том, чтобы вручную зарегистрировать модуль в Axis2 вместо автоматической регистрации, поэтому он пропускает запись временного JAR на диск.
Я использовал логику изAxis2 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>
, но мой временный каталог не содержит каталогов axis2-tmp-6160203768737879650.tmp
или axis2-tmp-6160203768737879650.tmp.lck
файлов.