質問

GlassFish Embedded APIを使用して、JPA-EJB-Webプロジェクトをスタンドアロンアプリケーションとしてパッケージ化できるようにしたいと思います。

JPAレイヤを使用するには、 asadminコマンド GeneraCodeTagCode私はそれをするこのコード:

    String command = "add-resources";
    ParameterMap params = new ParameterMap();
    params.add("", "...\sun-resources.xml" );
    CommandRunner runner = server.getHabitat().getComponent(CommandRunner.class);
    ActionReport report = server.getHabitat().getComponent(ActionReport.class);
    runner.getCommandInvocation(command, report).parameters(params).execute();
.

しかしガスメがそれを拒否します:

15-Jul-2010 16:34:12 org.glassfish.admin.cli.resources.AddResources execute
.

重度:追加資源の中で何か問題が発生しました

java.lang.Exception: ...\gfembed6930201441546233570tmp\lib\dtds\sun-resources_1_4.dtd (The system cannot find the path specified)
        at org.glassfish.admin.cli.resources.ResourcesXMLParser.initProperties(ResourcesXMLParser.java:163)
        at org.glassfish.admin.cli.resources.ResourcesXMLParser.<init>(ResourcesXMLParser.java:109)
        at org.glassfish.admin.cli.resources.ResourcesManager.createResources(ResourcesManager.java:67)
        at org.glassfish.admin.cli.resources.AddResources.execute(AddResources.java:106)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
        at javaapplication4.Main.main(Main.java:55)
.

と確かに、示されたパスには一般的なPathにadd-resources path\to\sun-resources.xmlディレクトリはありません...

私のコードに何か問題がありますか?( glassfish-embedded-all-3.0.1.jar

ありがとう

役に立ちましたか?

解決

組み込みGlassFishの組み込みファイルシステムを指定し、欠落していたファイルを使用して/path/to/my/glassfish/lib/dtdsフォルダを事前に作成しました。

        EmbeddedFileSystem.Builder efsb = new EmbeddedFileSystem.Builder();
        efsb.autoDelete(false);
        efsb.installRoot(new File("/path/to/my/glassfish"), true);

        EmbeddedFileSystem efs = efsb.build();
        Server.Builder builder = new Server.Builder("test");
        builder.embeddedFileSystem(efs);

        builder.logger(true);
        Server server = builder.build();
        server.addContainer(ContainerBuilder.Type.all);
        server.start();
.

とGlassFishに依頼していない実行終了時にフォルダを削除しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top