2016-06-28 4 views
1

IBM docs에 따르면 Jython을 사용하여 Queue Connection Factory를 스크립팅하는 올바른 방법은 다음과 같습니다. 그러나 -connectionNameList 옵션을 추가 할 때마다 NullPointerError가 발생합니다. -connectionNameList를 제거하거나 호스트 이름 대신 빈 문자열을 넣으면 오류가 사라집니다.WebSphere Jython createWMQConnectionFactory -connectionNameList 옵션을 사용하는 NullPointerException

AdminTask.createWMQConnectionFactory(scopeID,'[-type QCF -name someQCF -jndiName jms/someCF -wmqTransportType BINDINGS_THEN_CLIENT -qmgrSvrconnChannel SYSTEM.DEF.SVRCONN -qmgrHostname -connectionNameList host(1234),host(1234) ]') 

그리고 오류 :

Exception caught during execution: 
type <java function type at 613319364> 
value com.ibm.ws.scripting.ScriptingException: java.lang.NullPointerException: java.lang.NullPointerException 

tb Traceback (innermost last): 
    File "<string>", line 383, in install_server 
    File "<string>", line 335, in createWMQConnectionFactory 

업데이트 :이 우리는 WebSphere 8.5.5.9

이 라인 335 인을 사용하고

는 (필자는 호스트 이름을 대체) 명령은 wsadmin> 프롬프트에서 직접 실행될 때 작동합니다. 그러나 파이썬 스크립트에서 jython을 사용하여 실행 한 경우에는 위에 표시된대로 NullPointerException을 반환하지 않고 대신 반환합니다.

+0

나에게 잘 보입니다. 가상 호스트 (포트) : host (1234)를 사용하면 host (1234) 오류가 여전히 발생합니까? –

+0

@ScottKurz 예. 나는 내가 생각할 수있는 모든 조합을 시도했다. 나는 그것이 그들의 끝의 버그라고 결론 지으면서 시작하고있다. 그러나 그것은 나의 상황을 많이 돕지 않는다. – Chris

+0

PMR을 사용하여 IBM에서 수정본을 제공하도록 –

답변

0

: 여기에 유효한 셀 범위의 구성 ID의 예입니다.

I 실행이 받았던 스크립트

이 나는 ​​그것을 제거 ./wsadmin.sh

에 설정된

-conntype NONE 

옵션을했고 지금은 작동합니다. 옵션이 하나의 함수에만 영향을주는 것은 매우 이상합니다.

+1

로컬 모드 (-conntype NONE)에는 많은 제한 사항이 있으며 다른 타스크 및 조작에 영향을 미칩니다 (IBM 지식 센터 주제 http://www.ibm.com/support/knowledgecenter/SSAW57_7 참조). 0.0/com.ibm.websphere.nd.doc/info/ae/ae/rxml_adminapp.html을 예로들 수 있습니다. –

0

변수 scopeID에 잘못된 구성 ID가 포함되어있을 수 있습니다. MQ Conn Factory를 작성하려는 프로파일의 ffdc 디렉토리를보십시오. 다음과 같이 표시되는 경우

[6/29/16 7:40:04:169 MDT]  FFDC Exception:java.lang.NullPointerException 

SourceId:com.ibm.websphere.management.async.client.AsyncCommandClient.execute ProbeId:187 Reporter:[email protected] java.lang.NullPointerException at com.ibm.websphere.management.configservice.ConfigServiceHelper.getObjectLocation(ConfigServiceHelper.java:258) at com.ibm.ws.messaging.admin.command.WMQCommandHelper.checkScope(WMQCommandHelper.java:156)

scopeID 변수가 유효하지 않습니다. IBM의 KnowledgeCenter topic related to wsadmin 보면, 여기 경우 ScopeId에 ​​대한 값을 얻는 방법은 다음과 같습니다 노드를 교체

scopeID = AdminConfig.getid('/Node:mynode/') 

: 구성에 적합한 범위 값 MYNODE을. AdminTask를 호출하기 전에 스크립트에서 scopeID의 값을 인쇄하면 올바르게 구성되었는지 확인할 수 있습니다. 나는 내 문제를 해결

wsadmin>print scopeID 
MyNode03Cell(cells/MyNode03Cell|cell.xml#Cell_1)