0

Glassfish のシングルトン EJB に単純な文字列を挿入しようとしています。

import java.net.URI;
import java.net.URISyntaxException;
import javax.annotation.Resource;
import javax.ejb.Singleton;

@Singleton
public class MavenArtifactResolverProviderBean {

    private URI configurationUri() throws URISyntaxException {
        return new URI(configurationString);
    }

    @Resource(name = "configurationUri")
    private String configurationString;

    ...
}

Bean クラスは EJB としてパッケージ化されています。これが私のものMETA-INF/ejb-jar.xmlです:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns = "http://java.sun.com/xml/ns/javaee"
         version = "3.1"
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd">
    <enterprise-beans>
        <session>
            <ejb-name>MavenArtifactResolverProviderBean</ejb-name>
            <ejb-class>net.java.trueupdate.server.impl.maven.MavenArtifactResolverProviderBean</ejb-class>
            <env-entry>
                <env-entry-name>configurationUri</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>net/java/trueupdate/artifact/impl/maven/main-repositories.xml</env-entry-value>
                <injection-target>
                    <injection-target-class>net.java.trueupdate.server.impl.maven.MavenArtifactResolverProviderBean</injection-target-class>
                    <injection-target-name>configurationString</injection-target-name>
                </injection-target>
            </env-entry>
        </session>
    </enterprise-beans>
</ejb-jar>

この混乱が必要かどうかさえわかりません。

次に、Jersey Test Framework 1.17.1 を介して、Embedded GlassFish 3.1.1 で JerseyTest を実行しています。ただし、何も注入されず、メソッドNullPointerExceptionから得られるものはすべてです。configurationUri()

また、失敗したテストを無視して、Bean JAR を WAR にパッケージ化し、それをスタンドアロンの GlassFish 4.0 にデプロイして同じ結果を得ようとしました。次に、env-entry をweb.xmlWAR の にコピー アンド ペーストし、同じ結果で再デプロイしました。

私は何を間違っていますか?インターネットを検索したところ、おそらく a を微調整する必要があることがわかりましたdomain.xmlが、このための XML スキーマはないようで、asadmin コマンドのドキュメントは...圧倒的です。

どんなヒントでも大歓迎です!

編集: 文字列フィールドにデフォルト値を単純に設定しない理由を 1 つ質問します。これは、この構成アイテムをejb-jar.xml. それ以外の場合は、コードに隠されているだけです。

4

1 に答える 1

0

使ってみて@Resource(lookup = "configurationUri")

于 2013-08-17T05:20:14.843 に答える