0

ColdFusion 9 インスタンスと .NET DLL があります。.NET DLL は非常に単純な文字列解析で、CF でのタスクの一部を簡単にします。文字列を使用してクライアント固有のタスクを実行するクライアントごとに 1 つの DLL がありますが、元のソースからそれらの項目をプルするコアは、クライアントごとに変わりません。

この場合、次のようなオブジェクトがあります。

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


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

通知クラスはメイン DLL であり、BaseClass は別の DLL にあります。

更新: テスト目的ですべてを 1 つの DLL に入れましたが、それでも同じエラーが発生します。私が受け取っているエラーは次のとおりです。

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

残念ながら、logs フォルダーにアクセスできません。彼らはそれをセキュリティリスクか何かと考えていると思います。System.Xml.dll をフォルダーに入れましたが、まだ .NET Integration Service によって取得されていないようです。

何か新しい考えはありますか?XmlQualifiedName が見つからないのはなぜですか?

更新 2: ColdFusion コードは非常に単純です。ここで説明する関数を持つ cfcomponent です。

<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>
4

1 に答える 1

0

クラスがインスタンス化されるというこの問題が発生し続けましたが、例外によりこのエラーが発生しました。いじくり回してわかったことは、適切な dll を含むアセンブリ リストを使用しても、JNB プロキシにはプロキシ生成にそのクラスが含まれていないと推定されるため、まだ失敗するということです。

私がしていることは、次のようにクラスを直接インスタンス化することです:

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

そのため、例外が発生した場合にクラスのプロキシが生成され、エラーは発生しません。

于 2013-03-05T18:49:11.060 に答える