2012-01-17 3 views
0

ColdFusion 9.1.0을 사용하고 있습니다.ColdFusion 9에서 Java 오류로 Null 포인터를 처리하는 방법은 무엇입니까?

다른 누군가가 잠시 뒤로 개발 한 사이트의 일부로 작업하고 있습니다. 누군가가 갔고 문서가 없다는 것입니다. CF 관리자에 액세스 할 수 있지만 특정 문제로 인해 도움이되는 항목을 찾을 수 없습니다.

아래 코드에서 Java 객체가 생성되고 (인증) 다음 행에서 객체가 참조됩니다. 두 개의 변수가 메소드 (runTransaction), 특성 파일 (VARIABLES.PropsFile) 및 XML (VARIABLES.MyXML)에 전달됩니다.

<cfobject action="create" type="Java" class="CyberSource" name="auth"> 
<cfset VARIABLES.ResponseString = auth.runTransaction(VARIABLES.PropsFile,VARIABLES.MyXML)> 

개체가 성공적으로 만들어졌습니다. 나는 이것을 알고 있습니다. 왜냐하면 제가 객체의 클래스를 바꿀 때, 그것은 폭발하기 때문입니다! "CyberSource"로 다시 변경하면 작동합니다.

속성 파일이 있다는 것을 알고 있습니다. 나는 XML이 존재한다는 것을 안다.

The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code. 

Null Pointers are another name for undefined values. 

The error occurred in D:/inetpub/wwwroot/Watkins_OE-DEV/Test.cfm: line 63 

61 : <!--- CREATE JAVA OBJECT ---> 
62 : <cfobject action="create" type="Java" class="CyberSource" name="auth"> 
63 : <cfset VARIABLES.ResponseString = auth.runTransaction(VARIABLES.PropsFile,VARIABLES.MyXML)> 

가이 오류가 정말 무엇을 의미하는지에 대한 어떠한 단서로 날을 제공 할 수 어디서 다음에 볼 수 있습니다

내가 오류이 무엇입니까?

편집 :

나는 내 문제가 무엇인지 정확히 파악할 수는 없지만, 나는 그것을 다른 방식으로 해결하는 갔다. 내가 일하는 파일을 발견하고 그것을 천천히 재구성하여 길을 따라 100 번 테스트했습니다.

팁과 힌트를 보내 주셔서 감사합니다.

+0

할 무엇 '은 '및 '제공합니까? 그들은 존재하고 합리적으로 보입니까? – Tomalak

+0

예, 존재하고 멋지게 보입니다. 나는 그것을 볼 수 있기 때문에 props 파일이 있다는 것을 알았고 fileExists()를 사용하여 파일의 존재 여부를 테스트했습니다. XML은 페이지에서 저에게 만들어집니다. 나는 그것을 출력하고 그것을 잘 읽을 수있다. –

+0

그래서 NullPointerException이 * runTransaction()에서 * 발생하고 ColdFusion에서 할 수있는 일이 많지 않습니다 (분명히 '/'제외). 해당 Java 클래스를 디버그해야합니다. 아마도 특정 XML 노드가 거기에있을 것으로 예상하고 그것을 확인하지 않고 사용합니다. – Tomalak

답변

0

설명서에 따라 auth.runTransaction()을 try/catch로 포장하십시오. 다음 코드는 샘플에서 오는

은 CyberSource를 자바 API를 포함 :

<!--- Change this to point to your property file ---> 
<cfset propsFile = "full_path_to/coldfusion/samples/cybs.properties"> 

<!--- Change this to point to your request file ---> 
<cffile action="Read" file="full_path_to/coldfusion/samples/xml/request.xml" variable="requestString"> 

<cfobject action="create" type="Java" class="CyberSource" name="auth"> 
<cfxml variable="requestDoc"> 
    <cfoutput>#requestString#</cfoutput> 
</cfxml> 
<cfdump label="Request" var="#requestDoc#"> 

<cftry> 

<!--- make the call ---> 
<cfset responseString = auth.runTransaction(propsFile,requestString)> 

<!--- cast the response to xml ---> 
<cfxml variable="responseDoc"> 
<cfoutput>#responseString#</cfoutput> 
</cfxml> 
<cfdump label="Response" var="#responseDoc#"> 

<!--- exception handling ---> 
<cfcatch type="com.cybersource.ws.client.ClientException"> 
    <cfoutput><b>Exception Message:</b> #cfcatch.message#</cfoutput><br><br> 
    <cfdump label="com.cybersource.ws.client.ClientException" var=#cfcatch#> 
</cfcatch> 

<cfcatch type="com.cybersource.ws.client.FaultException"> 
    <cfoutput><b>Exception Message:</b> #cfcatch.message#</cfoutput><br><br> 
    <cfdump label="com.cybersource.ws.client.FaultException" var=#cfcatch#> 
</cfcatch> 

</cftry> 

모든 플랫폼 자바 우편 여기에 다운로드 할 수있는 내부의 ColdFusion에서 샘플이 있습니다

http://apps.cybersource.com/cgi-bin/pages/dev_kits.cgi?kit=Java/All_Platforms

관련 문제