首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在batchManager提交命令调用中识别name中的批处理应用程序名称

如何在batchManager提交命令调用中识别name中的批处理应用程序名称
EN

Stack Overflow用户
提问于 2016-09-01 13:29:44
回答 1查看 737关注 0票数 1

我是自由的新手,并且正在尝试批处理(352)功能。我找不到这个问题,不管是通过搜索引擎还是堆栈溢出,所以我显然忽略了一些显而易见的东西.

我在Free8.5.5.9中创建了一个简单的测试应用程序。它的结构如下:

  • testbatchEAR
    • testbatchWAR
      • testbatchBatch

EAR已通过通常的Add/Remove菜单选择添加到服务器。

我现在尝试使用以下命令行提交该作业:

代码语言:javascript
复制
batchManager submit --batchManager=localhost:9443 --user=<> --password=<> --trustSslCertificates --jobXMLName=TestProcessor.xml --applicationName=testbatch

我收到一条信息(截短):

代码语言:javascript
复制
Error: Server returned HTTP response code: 500 for URL: https://localhost:9443/ibm/api/batch/jobinstances: [Error 500:  com.ibm.ws.jbatch.rest.bridge.BatchContainerAppNotFoundException: Failed to load the application context for application testbatch#testbatch.war. Verify the application is installed.

我尝试过testbatch,testbatchEAR,testbatchWAR,但是从消息的"testbatch#testbatch.war“部分来看,它似乎只是对EAR和WAR使用了相同的名称,我认为这是不可能的,对吗?

我错过了其中的哪一部分?它肯定就在我面前,但我找到的每一个例子或解决方案都是使用赤裸裸的战争,而这是我做不到的。在任何自由的地方,我都可以找到应用程序的名称吗?我是否应该在某个地方定义名称(server.xml?)?

提前感谢!

*编辑:附加信息*

如果我从Eclipse > Java批处理作业部分运行它,它就会运行它,并且执行batchManager listJobs将应用程序名称显示为testbatchEAR#testbatchWAR.war。

因此,我想我真正的问题是,我如何将这个名字放入batchManager.bat的--applicationName选项中?它夺走并使#.war从它。我试过把listJobs的全名,但它不允许'#‘字符.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-06 14:44:00

在EAR应用程序中同时指定--applicationName和--moduleName

(正如您所发现的),在批处理应用程序打包在EAR内的WAR中的情况下,通常必须同时指定--applicationName-moduleName,例如:

batchManager submit --batchManager=localhost:9443 ... --applicationName=testbatch --moduleName=testbatchWAR.war ...

在WAR应用程序中只指定--applicationName

不过,您可能已经看到了只需要--applicationName的例子,例如这里

这种语法在批处理应用程序打包为WAR (但不是EAR中的WAR )的情况下起作用。

此处的“实用程序项目”名称与此无关,也没有EJB,因此也没有--componentName相关的名称。

文档在本节中确实提到了这个这里

POST /ibm/api/批处理/作业实例 ..。 applicationName标识批处理应用程序。它是必需的,除非指定了moduleName,在这种情况下,applicationName是通过修剪.war或.jar后缀从moduleName派生的。例如,如果不提供applicationName和moduleName=SimpleBatchJob.war,则applicationName默认为SimpleBatchJob。 moduleName标识包含作业工件(如JSL )的批处理应用程序中的模块。作业是在模块的组件上下文下提交的。除非指定了moduleName,否则applicationName是必需的,在这种情况下,moduleName是通过将.war附加到applicationName来从applicationName派生的。例如,如果提供applicationName=SimpleBatchJob而不提供moduleName,则moduleName默认为SimpleBatchJob.war。

但是,如果您同时在WDT这样的工具中创建Web项目和EAR项目,那么您将很难为这些项目命名相同的名称(因为它们会发生冲突),因此这只在没有单独的EAR项目的情况下才能很好地工作。当EAR项目存在时,您需要这两个参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39272909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档