我正在使用Apache ODE Deployment API来部署应用程序。到目前为止一切都很好。
当我尝试取消部署时,我使用以下代码:
private void undeployProcessInODE() {
DeploymentService service = new DeploymentServiceLocator();
try {
DeploymentServicePortType port = service
.getDeploymentServiceSOAP11port_http();
String[] deployedPackages = port.listDeployedPackages();
String deployedPackage;
QName[] qNames;
QName qName;
for (int i = 0; i < deployedPackages.length; i++) {
deployedPackage = deployedPackages[i];
qNames = port.listProcesses(deployedPackage);
for (int j = 0; j < qNames.length; j++) {
qName = qNames[i];
port.undeploy(qName);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
}
然后抛出
Invocation of operation undeploy failed: org.apache.ode.axis2.OdeFault: Invalid bundle name, only non empty alpha-numerics and _ strings are allowed.
因为qName
的本地部分是bpel258-156
,我想这是某种部署版本控制,我不知道如何控制。 WEB-INF/processes
内的我的文件夹是BPEL_process
,其中的所有文件都是bpel258.bpel
,依此类推。我找不到添加“版本”号的任何内容的引用,所以我不知道如何避免这种情况。
此外,我仍然不确定“取消部署”在ODE术语中的含义。它只是删除我的进程文件夹?什么是我的文件夹旁边的.deploy文件,为什么它是空的? 我已多次尝试删除文件夹和.deployed,但ODE会记住它们并尝试找到它们。我该如何重置?
作为额外的,我必须说我最终将整个ode文件夹从我通过Eclipse使用的Tomcat更改为独立的Jetty,以便拥有名为BPEL_process的文件夹,并且每次都覆盖它。在此之前,ODE只会创建一个带有版本号的新文件夹,我不知道如何更改它。对此的帮助也将受到赞赏。
我知道这些问题一下子可能太多,但我相信它们都是密切相关的。