2012-05-29 1 views
0

저는 ColdFusion 9 인스턴스와 .NET DLL을 가지고 있습니다. .NET DLL은 CF에서보다 쉽게 ​​작업을 수행 할 수 있도록 매우 간단한 문자열 파싱입니다. 문자열과 함께 클라이언트 특정 작업을 수행하려는 각 클라이언트에 대해 하나의 DLL이 있지만 원본 소스에서 해당 항목을 가져 오는 핵심은 클라이언트에서 클라이언트로 변경되지 않습니다. 이 경우 ColdFusion : cfobject 태그에서 .NET DLL을 참조 할 때 NoClassDefFoundError 가져 오기

, 나는처럼 보이는 물체가 :

public class clsNotification : BaseClass 
{ 
    public string GetSimpleString() 
    { 
     return "I was here"; 
    } 


    public string GetNotificationsXml(int ProjectID) 
    { 
     return MybaseClass.getXML(ProjectID); 
    } 
} 

알림 클래스는 기본 DLL입니다 및 BaseClass로 별도의 DLL입니다.

업데이트 : 테스트 용으로 하나의 DLL에 모든 것을 넣었지만 여전히 동일한 오류가 발생합니다. 수신 오류 :

coldfusion.xml.rpc.CFCInvocationException: [java.lang.NoClassDefFoundError : 
System/Xml/XmlQualifiedName][java.lang.ClassNotFoundException : 
System.Xml.XmlQualifiedName] 

불행히도 로그 폴더에 액세스 할 수 없습니다. 보안 위험이나 무언가라고 생각합니다. System.Xml.dll을 폴더에 넣었지만 여전히 .NET Integration Service에 의해 선택되지 않은 것으로 보입니다.

새로운 의견이 있으십니까? 왜 XmlQualifiedName을 찾을 수 없습니까?

업데이트 2 : ColdFusion 코드는 매우 간단합니다. I 클래스가 인스턴스화 것이지만 예외 이러한 오류를 초래할 것 인 문제를 갖는 유지

<cffunction name="GetNotificationsXml" access="remote" returntype="string" output="false"> 
    <cfargument name="ProjectID" type="numeric" required="yes"> 

    <cfobject name="myObj" type=".NET" 
     assembly="#ExpandPath("./")#Published .NET DLLs/Notifications.dll" 
     class="#Namespace#.clsNotifications"> 

    <cfset str=myObj.GetNotificationsXml(ProjectID) /> 

    <cfreturn str> 
</cffunction> 
+0

전체 스택 추적 (및'{cfroot} \ jnbridge' 로그의 오류)을 게시 할 수 있습니까 – Leigh

+0

Cold fusion에서 작성한 내용 – Ravia

+0

예외 스 니펫은 약간 모호합니다. 'NoClassDefFoundError'는 클래스가 빠져 있거나 CF가 필요한 프록시 클래스를 생성하지 못했음을 의미 할 수 있지만 일반적인 초기화 문제를 나타낼 수도 있습니다. System.xml dll을'assembly'리스트에 추가하십시오. 어떤 변화? – Leigh

답변

0

여기 개시된 바와 같이 함수와 cfcomponent이다. 내가 땜질하면서, 내가 알아 낸 것은 적절한 dll이 포함 된 어셈블리리스트조차도 JNB 프록시가 프록시 생성에서 그 클래스를 포함하지 않는다고 가정하기 때문에 여전히 실패합니다.

는 내가 뭘하면이 같은 직접 클래스를 인스턴스화입니다 :이 클래스의 생성 된 프록시 때/예외가 발생하면

<cfset nullObj=CreateObject(".net","System.Net.WebExceptionStatus" 
      ,"C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll")> 

오류가 발생하지 않도록.