1

Mavenビルド環境内でJetty上にJOTMを構成できませんでした。アプリケーションを実行しようとしたときに発生する例外は次のとおりです。

2009-07-21 19:47:23.499::WARN:  Config error at <New id="UserTransaction" class="org.mortbay.jetty.plus.naming.Transaction"><Arg>
                <Ref id="ut"/>
            </Arg></New>
    [INFO] Jetty server exiting.
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Failure

    A flat name can only have a single component

私はこれを参照として使用しています:http://docs.codehaus.org/display/JETTY/JOTM

jetty.xml(mavenのpom.xmlのjettyConfig、これは実際に表示されています)

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure id="Server" class="org.mortbay.jetty.Server">
<!-- Configure a Jotm instance which provides a javax.transaction.TransactionManager     -->
    <!-- and a javax.transaction.UserTransaction implementation.                             -->
    <New id="jotm" class="org.objectweb.jotm.Jotm">
        <Arg type="boolean">True</Arg>
        <Arg type="boolean">False</Arg>
        <Call id="tm" name="getTransactionManager"/>
        <Call id="ut" name="getUserTransaction"/>
    </New>

    <!-- Set up the UserTransaction impl from JOTM as the transaction manager for jetty      -->
    <!--
    <New id="UserTransaction" class="org.mortbay.jetty.plus.naming.Transaction">
        <Arg>
            <Ref id="ut"/>
        </Arg>
    </New>
    -->
    <New id="userTransaction" class="org.mortbay.jetty.plus.naming.Resource">
        <Arg></Arg>
        <Arg>javax.transaction.TransactionManager</Arg>
        <Arg>
            <Ref id="ut"/>
        </Arg>
    </New>


    <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction">
        <Arg>
            <Ref id="ut"/>
        </Arg>
    </New>

    <!-- If you want to be able to set up more references in webapp specific files -->
    <!-- such as context deployment files and WEB-INF/jetty-env.xml files, you     -->
    <!-- need to save a reference to the JOTM tm object:                           -->
    <!--
    <Call name="setAttribute">
    <Arg>tm</Arg>
    <Arg><Ref id="tm"/></Arg>
    </Call>
    -->
</Configure>

carol.properties(これが表示されているかどうかはわかりませんが、例外を除いて、これも関連性がありますか?)

carol.start.ns=false
carol.start.jndi=false
carol.protocols=jrmp
carol.start.rmi=false
carol.jvm.rmi.local.call=true
carol.jndi.java.naming.factory.url.pkgs=org.mortbay.naming

何か案は?

ありがとう、ウォルター

4

2 に答える 2

0

キャロルはあなたのcarol.jar/carol.propertiesファイルの代わりに自分のファイルを使用しているようです。変更されたファイルを使用して、jetty8でjtaを使用してサンプルプロジェクトを準備しましたcarol.jar/carol.properties。そこにhttp://github.com/beolnix/jta-in-jetty8があります。すべて問題ないようですが(コミット、ロールバック-問題ありません)、org.omg.CORBA.BAD_INV_ORDER例外が表示されることがあります。私の例では、この例外は無視されます

try {
    ret = ctx.proceed()
    tx.commit()
} catch (org.omg.CORBA.BAD_INV_ORDER e) {
    //nop
} catch (Throwable e) {
    tx.rollback()
    throw new TransactionException(e.getMessage())
}

トランザクション処理の結果に影響を与えないため

于 2012-01-30T21:47:50.400 に答える
0

プロジェクトのcarol.propertiesはどこにありますか?

Mavenリソースはsrc/main/resourcesの下にある必要があります。Jettyは、carol.propertiesがresourcesフォルダーにあることを想定しています。

そのため、Jettyが起動する前に、プロセスリソースステージによってファイルがtarget / resourcesにコピーされるように、carol.propertiesをsrc / main / resources/resourcesに移動する必要がある場合があります。

于 2009-07-23T21:20:24.220 に答える