2016-09-01 10 views
1

저는 Liberty를 처음 사용하고 배치 (352) 기능을 시험하고 있습니다. 검색 엔진이나 stackoverflow를 통해 질문을받은 것으로 알 수는 없으므로 분명히 분명히 뭔가 빠져 있습니다.batchManager submit 명령 호출에서 Liberty의 일괄 처리 응용 프로그램 이름을 식별하는 방법

저는 Liberty 8.5.5.9에서 간단한 테스트 응용 프로그램을 만들었습니다.

  • testbatchWAR
    • 귀가 보통의 추가를 통해 서버에 추가 된

testbatchBatch/제거를

  • testbatchEAR : 그것은 구조를 가지고 메뉴 선택.

    지금 사용하여 명령 줄에서 작업을 제출하기 위해 노력하고있어 :

    batchManager submit --batchManager=localhost:9443 --user=<> --password=<> --trustSslCertificates --jobXMLName=TestProcessor.xml --applicationName=testbatch 
    

    을 그리고 난 다시 (절단) 메시지를 얻을 : 나는 testbatchEAR, testbatch을 시도했습니다

    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. 
    

    을 , testbatchWAR하지만 메시지의 "testbatch # testbatch.war"부분에서 EAR과 WAR 모두에 대해 동일한 이름을 사용하는 것처럼 보입니다. 이것은 가능하지 않다고 생각합니까?

    어떤 부분이 빠졌습니까? 그것은 내 얼굴 앞에 있어야하지만, 내가 찾은 모든 예나 해결책은 내가 할 수없는 나체 WAR을 사용하고있다. 애플리케이션 이름을 어디에서 찾을 수 있습니까? 어딘가에서 이름을 정의해야합니까 (server.xml?)?

    미리 감사드립니다.

    * 편집 : 추가 정보 *

    내가> 이클립스 실행 구성에서 자바 EE 배치 작업 섹션을 실행하는 경우, 그것을 실행하고 배치 관리자 listJobs을 수행하는 testbatchEAR # testbatchWAR로 응용 프로그램의 이름을 보여줍니다 않습니다 .전쟁.

    그래서 내가 가진 진짜 질문은이 이름을 batchManager.bat의 --applicationName 옵션에 어떻게 넣을 수 있는가입니다. 그것은 그것에서 # .war를 취하고 만듭니다. 당신이 발견 한 것처럼 (

+0

server.xml의 ''또는 ''요소는 어떻게 생겼습니까? –

+0

@aguibert 그러면 응용 프로그램이 정상적으로 시작됩니다. 이름을 바꾸려고하면 갑자기 그 위치에서 귀를 찾을 수 없습니다. – Mike

+0

EAR의 applicationName과 WAR 파일의 구성 요소 이름 (--componentName 매개 변수와 함께)을 지정해야한다고 생각합니다. 도움말에서 componentName은 "일괄 처리 EJB 모듈에서 EJB 구성 요소를 식별합니다." – DFollis

답변

0

귀 응용 프로그램

에 --applicationName 및 --moduleName 모두 지정 ... 나는 listJobs에서 전체 이름을 퍼팅 시도했지만, 그것은 '#'문자를 허용하지 않습니다), 일괄 처리 응용 프로그램이 EAR 내의 WAR 내에 패키지화되어있는 경우 일반적으로 --applicationName--moduleName과 같이 지정해야합니다.:

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

전쟁 응용 프로그램

있는 경우에만 --applicationName이 필요하지만 당신은 예를 볼 수도 있습니다, 예를 들어, 그냥 --applicationName 지정 here.

이 구문은 일괄 처리 응용 프로그램이 WAR로 패키지화되어 있지만 EAR 내에 WAR가 아닌 패키지로 제공됩니다.

여기서 "유틸리티 프로젝트"이름은 적합하지 않으며 EJB가 없으므로 - componentName 중 하나가 적합합니다. ...

POST/IBM/API/배치/jobinstances

applicationName에 일괄 응용 프로그램을 식별합니다

상무부 섹션에서이 here 언급한다. moduleName을 지정하지 않으면 applicationName이 moduleName의 .war 또는 .jar 접미사를 잘라내어 moduleName에서 파생 된 경우 필수입니다. 예를 들어, applicationName 및 moduleName = SimpleBatchJob.war을 제공하지 않으면 applicationName의 기본값은 SimpleBatchJob입니다.

moduleName은 JSL과 같은 작업 아티팩트가 포함 된 일괄 처리 응용 프로그램 내의 모듈을 식별합니다. 작업은 모듈의 구성 요소 컨텍스트에서 제출됩니다. applicationName을 지정하지 않으면 moduleName이 필수입니다.이 경우 moduleName은 applicationName에 .war를 추가하여 applicationName에서 파생됩니다. 예를 들어, applicationName = SimpleBatchJob을 제공하고 moduleName을 제공하지 않으면 moduleName의 기본값은 SimpleBatchJob.war입니다. 당신은 웹 프로젝트 및 WDT와 같은 도구에 EAR 프로젝트를 모두 만드는 경우

, 당신은 쉽게 같은 이름이 (가 충돌 할 것이기 때문에) 프로젝트를 줄 수하지 않을거야하지만 그래서 이것은 정말로 별도의 EAR 프로젝트가없는 경우에만 효과적입니다. EAR 프로젝트가 존재하면 두 매개 변수가 모두 필요합니다.