2012-01-31 3 views
1

HelloWorld 응용 프로그램을 설치했지만 아직 배포하지 않았습니다. 상태는 같은 Installed입니다 :wlfullclient.jar을 사용하여 WebLogic 10.3.4에 이미 설치된 응용 프로그램을 배포하십시오.

enter image description here

내가 대상 서버에 배포하기 위해 노력하고있어, AdminServer 말, 그것은 AdminServer에 배포helloworld.war라는 새로운 응용 프로그램을 만드는 결과 원래 HelloWorld 앱은 Installed 상태로 유지됩니다. 앱 helloworld.war은 ... 스냅 샷 상태 Active에있는 하나입니다 :이 놀라운 사실은, 비록 있습니다

File warFilePath = new File("c:/helloworld.war"); // war file path on AdminServer machine 

Target adminServerTarget = deployManager.getTarget("AdminServer"); 
WebLogicTargetModuleID targetModuleID = deployManager.createTargetModuleID(
     "HelloWorld", ModuleType.WAR, adminServerTarget); 
WebLogicTargetModuleID[] targetModuleIDs = new WebLogicTargetModuleID[1]; 
targetModuleIDs[0] = targetModuleID; 

ProgressObject redeployProcessObject = 
    deployManager.redeploy(targetModuleIDs, warFilePath, null /*no deployment plan*/); 

:

enter image description here 여기

내가 이미 설치된 응용 프로그램을 배포하는 데 사용하는 코드입니다 .

먼저 WebLogic 버전 9.x에서 10.3으로이 코드를 실행할 때. 잘 작동합니다.

둘째,이 코드를 WLST 프롬프트에서 실행할 때 자이 썬으로 버전 10.3에서도 훌륭하게 작동합니다. (구문 입양을 제외하고는 java와 동일하지만 정확한 명령을 첨부 할 수 있습니다.) ...

내 질문은 10.3.4에서도 어떻게 작동합니까?

답변

0

나는 아무도이 질문에 대답하지 않을 것이라고 생각 했어야했다. :)

어쨌든 해결책을 찾았습니다. 나는 이름이 기존의 응용 프로그램 이름 (HelloWorld)인지의 DeploymentOptions로 대신 redeploydeploy을 사용 했어야 :

 ProgressObject redeployProcessObject = null; 
     try { 
      final DeploymentOptions options = new DeploymentOptions(); 
      options.setName(applicationName); 
      redeployProcessObject = deployManager.deploy(
       targetModuleIDs, warFilePath, null /*no deployment plan*/, options); 
     } catch (TargetException e) { 
      final String message = 
        String.format("Deployment of application %s on target %s failed: %s", 
          applicationName, allTargets, e.getMessage()); 
      _log.error(message, e); 
     } 

docs에 따르면, redeploy는 업데이트 된 버전으로 현재 응용 프로그램 파일과 계획을 대체합니다. deploy은 AdminServer의 파일을 대상에 배포하고 응용 프로그램을 시작합니다.

또한 WebLogic의 자이 썬 스크립트와 jar를 깊이 파헤친 후에 WLST에서 redeploy을 호출 할 때 정확히 수행 한 결과라는 것을 알게되었습니다.