본문 바로가기
IBM - old/IBM BPM

[BPM]IBM BPM 에서 웹 서버 추가 후에 redirect URL 을 대응하기 위해서 해주어야 하는 작업

by freeman98 2016. 12. 26.

안녕하세요 이정운입니다.


BPM 서비스 호출에서 몇몇 케이스는 redirect URL 을 사용하는 경우가 있습니다.


일반적으로 BPM 만 있을 경우에는 문제가 안되는데 웹서버를 추가하여 웹서버를 반드시 거치게 된다면 이 부분이 이슈가 되는 경우가 있습니다.


그러한 상황을 위해서 IBM BPM 에서는 'EXTERNAL_CLIENT' 는 설정을 추가 제공하며 그 사용법에 대해서 간단히 테스트 및 공유드리오니 참고하시기 바라겠습니다.



#1) 테스트를 위해서 웹서버를 하단과 같이 추가



#2) 예를 들어 Process Diagram Control 을 사용한 Process Diagram View 를 보게되면 redirect URL 을 사용하게 되고 BPM 만 있으면 정상 작동


https://kr050578:12019/teamworks/executeServiceByName?processApp=SPA01&serviceName=ProcessDiagramView

https://kr050578:12019/teamworks/fauxRedirect.lsw?applicationInstanceId=guid%3A28e65f70a068ea1d%3A-2d8d59f0%3A159319e9b94%3A-8000&zTaskId=p2&zComponentId=3028.b9fc7fe8-ac33-483c-8b94-4582bed12af7&zWorkflowState=2&zComponentName=CoachNG&zDbg=0&applicationId=2#%20%20




#3) 웹서버 추가 환경을 위한 설정 작업(환경 이름이 'DeAdv855' 이며 웹 서버의 HTTPS 포트가 8443 'bpm856:8443')


Customizing IBM BPM to work with a web server:
http://www.ibm.com/support/knowledgecenter/en/SSFTDH_8.5.6/com.ibm.wbpm.imuc.doc/topics/tconfig_custom_cluster_env.html


Dmgr 디렉토리에서 하단의 내용 수행


Dmgr/bin 디렉토리 : wsadmin -conntype none -lang jython

dePath = '/Cell:/BPMCellConfigExtension:/BPMDeploymentEnvironment:DeAdv855/'

webserver_vh = AdminTask.setBPMVirtualHost( [ '-de', 'DeAdv855', '-name', 'webserver_vh', '-transportProtocol', 'https', '-hostname', 'bpm856:8443' ] )

for item in AdminUtilities.convertToList(AdminConfig.getid(dePath+'BPMURLS:/BPMURL:/')):

if AdminConfig.showAttribute(item,'scenario') == 'EXTERNAL_CLIENT': bpmurl= item; break;

print bpmurl

AdminConfig.modify(bpmurl, [['virtualHost',webserver_vh]])

AdminConfig.save()

--> For 문과 if 문에서 exception 이 발생하여 'print bpmurl' 이 나오지 않는다면 for 문 돌리지 말고 AdminUtilities.convertToList() 의 배열을 확인해서 수정하는 작업을 직접 해도 됩니다.
  
test = AdminUtilities.convertToList(AdminConfig.getid(dePath+'BPMURLS:/BPMURL:/'))

print AdminConfig.showAttribute(test[0],'scenario')    --> 이 결과값이 'EXTERNAL_CLIENT' 인 경우의 배열이 대상 test[0] 에서 숫자를 증가해서 확인해보면 되며 일반적으로 test[0] 임

bpmurl = test[0]

print bpmurl  --> 이후에는 상단과 동일하게 수행




#4) 전체 서버 재시작 (Dmgr 포함)


#5) 위에 언급한 설정을 수행한 상태(hostname 을 bpm856:8443 으로 설정(웹 서버의 HTTPS 포트)) 에서 웹서버로 요청을 테스트 후 결과 확인

댓글