سؤال

وأود أن تكون قادرة على حزمة مشروع جبا-إجب-ويب كتطبيق مستقل ، باستخدام غلاسفيش جزءا لا يتجزأ من أبي.

لاستخدام طبقة جبا ، ولست بحاجة لنشر الشمس الموارد.تكوين شمل ، والتي ينبغي أن تكون ممكنة مع القيادة أسدمين add-resources path\to\sun-resources.xml.لدي هذا الرمز للقيام بذلك:

    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)

وبالفعل ، لا يوجد lib الدليل على المسار المشار إليه ...

هل هناك شيء خاطئ في قانون بلدي?(أنا استخدم غلاسفيش-جزءا لا يتجزأ من جميع-3.0.1.جرة)

شكرا

هل كانت مفيدة؟

المحلول

أنا حلها عن طريق تحديد نظام الملفات جزءا لا يتجزأ من غلاسفيش جزءا لا يتجزأ، و بريبوبوليد /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();

وطلب غلاسفيش عدم حذف المجلد في نهاية التنفيذ.

نصائح أخرى

لست متأكدا من أن هذا ممكن, تشغيل asadmin الأوامر باستخدام واجهة برمجة تطبيقات خادم صن غلاسفيش المضمنة لا يذكر مثل هذه الحالة استخدام (تمرير sun-resources.xml).

ولكن أود أن استخدام مسبقا domain.xml بدلا من محاولة نشر sun-resource.xml ملف ، يجب أن تكون النتيجة مماثلة.من ال صن غلاسفيش خادم المؤسسة الإصدار 3 دليل الخادم المضمن:

باستخدام القائمة domain.xml ملف

باستخدام القائمة domain.xml ملف يتجنب الحاجة إلى تكوين جزءا لا يتجزأ خادم المؤسسة برمجيا في التطبيق الخاص بك.التطبيق الخاص بك يحصل على بيانات تكوين المجال من القائمة domain.xml ملف.يمكنك إنشاء هذا الملف باستخدام واجهات إدارية ل تركيب مؤسسة غير مجمعة الخادم.لتحديد القائمة domain.xml ملف ، استدعاء installRoot, instanceRoot, ، أو configurationFile طريقة EmbeddedFileSystem.Builder فئة أو مزيج من هذه الأساليب.

توفر الوثائق نماذج التعليمات البرمجية التي توضح كيفية القيام بذلك (يجب أن تكون واضحة جدا).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top