Срочно нужна помощь с развертыванием Glassfish 3.1 и проблемами, возникающими в Maven - PullRequest
2 голосов
/ 15 февраля 2011

Я отчаянно пытаюсь заставить плагин maven maven-glassfish работать, чтобы запустить мой домен и развернуть войну, чтобы я мог протестировать.Я хотел использовать плагин maven-glassfish-plugin, потому что, насколько я могу найти, плагин maven-embedded-glassfish-plugin не поддерживает настройку ключевого файла, поэтому я могу проверить аутентификацию входа в систему с помощью selenium

$ {project.build.outputDirectory} / keyfile

Но я не могу запустить плагин maven-glassfish-plugin, и я не могу получить плагин maven-embedded-glassfish, чтобы фактически разрешить программную настройку пользователей и аутентификацию.

MyMaven items:

    <properties>
        <glassfish.home>C:/usr/bin/glassfish-3.1-b42-02_11_2011/</glassfish.home>
        <glassfish.domain.name>domain1</glassfish.domain.name>
        <glassfish.domain.host>localhost</glassfish.domain.host>

        <!-- Glassfish -->
        <glassfish.version>3.2-SNAPSHOT</glassfish.version>
        <glassfish.plugin.version>2.1</glassfish.plugin.version>
        <glassfish.domain.name>domain1</glassfish.domain.name>
        <glassfish.domain.host>localhost</glassfish.domain.host>
        <glassfish.adminUser>admin</glassfish.adminUser>
        <glassfish.adminPassword>adminadmin</glassfish.adminPassword>
        <glassfish.passwordFile>${project.build.testOutputDirectory}/passwd.local.file</glassfish.passwordFile>-->

        ...

            <plugin>
                <groupId>org.glassfish.maven.plugin</groupId>
                <artifactId>maven-glassfish-plugin</artifactId>
                <version>${glassfish.plugin.version}</version>
                <configuration>
                    <glassfishDirectory>${glassfish.home}</glassfishDirectory>
                    <user>${glassfish.adminUser}</user>
                    <!--<adminPassword></adminPassword>-->
                    <passwordFile>${glassfish.passwordFile}</passwordFile>
                    <autoCreate>true</autoCreate>
                    <debug>true</debug>
                    <echo>true</echo>
                    <terse>false</terse>
                    <domain>
                        <name>${glassfish.domain.name}</name>
                        <host>${glassfish.domain.host}</host>
                        <adminPort>4848</adminPort>
                        <httpPort>8080</httpPort>
                        <httpsPort>8443</httpsPort>                                                        
                    </domain>
                    <components>
                        <component>
                            <name>${project.artifactId}</name>
                            <artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
                        </component>
                    </components>
                </configuration>
            </plugin>

Но я все еще не могу заставить это запустить администратора без принудительного входа в систему администратора.

Я начал вести блог об этом, но на самом деле было решение

=== Подробности ===

Я прошел много разных итераций с этим плагином и действительно не имел полного успеха.Одна проблема, которая продолжает преследовать этот плагин в моем тестировании, это когда плагин не определяет имя пользователя и пароль или добавляет имя пользователя и пароль администратора по умолчанию, например:

<user>${glassfish.adminUser}</user>
<adminPassword>${glassfish.adminPassword}</adminPassword>

Домен не запустится из-за отсутствия «Главный пароль », а также предупреждение об устаревшем синтаксисе.

[DEBUG] [C:\usr\bin\glassfish-3.1-b42-02_11_2011\bin\asadmin.bat, start-domain, --echo=true, --terse=false, --interactive=false, --user, admin, --passwordfile, C:\DOCUME~1\MKN
UTS~1\LOCALS~1\Temp\mgfp2524993691695672772.tmp, --debug=true, --domaindir, C:\usr\bin\glassfish-3.1-b42-02_11_2011\domains, domain1]
[INFO] Deprecated syntax, instead use:
[INFO] asadmin --echo --terse=false --interactive=false --user admin --passwordfile C:\DOCUME~1\MKNUTS~1\LOCALS~1\Temp\mgfp2524993691695672772.tmp start-domain [options] ...
[INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:\DOCUME~1\MKNUTS~1\LOCALS~1\Temp\mgfp2524993691695672772.tmp --interactive=false --echo=true --terse=false start-domain --verbose=false --upgrade=false --debug=true --domaindir "C:\\usr\\bin\\glassfish-3.1-b42-02_11_2011\\domains" domain1
[INFO] Command start-domain failed.
[ERROR] The Master Password is required to start the domain.  No console, no prompting possible.  You should either create the domain with --savemasterpassword=true or provide
 a password file with the --passwordfile option.
[ERROR] Unable to start domain "domain1".
[ERROR] For more detail on what might be causing the problem try running maven with the --debug option
[ERROR] or setting the maven-glassfish-plugin "echo" property to "true".

Другой вариант заключался в использовании пароля для запуска

<passwordFile>${glassfish.passwordFile}</passwordFile>
…
<glassfish.passwordFile>${project.build.testOutputDirectory}/passwd.local.file</glassfish.passwordFile>

Когда я пытаюсь запустить домен

mvn org.glassfish.maven.plugin:maven-glassfish-plugin:start-domain -e –X

Домен успешно запускается согласно журналам:

asadmin --host localhost --port 4848 --user admin --passwordfile C:\DOCUME~1\MKNUTS~1\LOCALS~1\Temp\mgfp2524993691695672772.tmp --interactive=false --echo=true --terse=false start-domain --verbose=false --upgrade=false --debug=true --domaindir "C:\\usr\\bin\\glassfish-3.1-b42-02_11_2011\\domains" domain1

Домен успешно запускается согласно журналам:

[DEBUG] [C:\usr\bin\glassfish-3.1-b42-02_11_2011\bin\asadmin.bat, start-domain, --echo=true, --terse=false, --interactive=false, --user, MKnuts6173c, --passwordfile, C:\usr\SY
NCH\PACKT\3166\Chapters_Code\ch03\target\test-classes/passwd.local.file, --debug=true, --domaindir, C:\usr\bin\glassfish-3.1-b42-02_11_2011\domains, domain1]
[INFO] Deprecated syntax, instead use:
[INFO] asadmin --echo --terse=false --interactive=false --user MKnuts6173c –passwordfile C:\usr\SYNCH\PACKT\3166\Chapters_Code\ch03\target\test-classes/passwd.local.file start-domain [options] ...

[INFO] asadmin --host localhost --port 4848 --user MKnuts6173c --passwordfile C:\usr\SYNCH\PACKT\3166\Chapters_Code\ch03\target\test-classes/passwd.local.file --interactive=false --echo=true --terse=false start-domain --verbose=false --upgrade=false --debug=true --domaindir "C:\\usr\\bin\\glassfish-3.1-b42-02_11_2011\\domains" domain1

[INFO] Attempting to start domain1.... Please look at the server log for more details.....

Несмотря на то, что это, казалось, завершилось успешно, существуетбыла фундаментальная проблема, которую я не мог решить.При использовании этого метода для запуска domain1 в GF отсутствует учетная запись администратора по умолчанию, поэтому вам предлагается ввести учетную запись администратора:

image 3166_ch02_07

Экран администратора не позволяет пользователювойдите в систему, как подтверждено в журналах:

[#|2011-02-15T15:15:21.047-0500|INFO|glassfish3.1|javax.enterprise.system.tools.admin.com.sun.enterprise.container.common|_ThreadID=100;_ThreadName=Thread-1;|User [] from host localhost does not have administration access|#]

При попытке фактически войти в систему, пользователь с правами администратора не имеет прав администратора, как указано в журналах:

[#|2011-02-15T15:23:22.535-0500|INFO|glassfish3.1|javax.enterprise.system.tools.admin.com.sun.enterprise.container.common|_ThreadID=118;_ThreadName=Thread-1;|User [admin] from host localhost does not have administration access|#]

image 3166_ch02_08

Мое приложение фактически не развертывается, когда это происходит.Так что у меня нет доступа ни к чему.

Я также пытался удалить passwordFile и ничего не использовать, или использовать только пользователя, или даже пользователя и adminPassword, но все равно не повезло

Myсодержимое моего пароляFile:

AS_ADMIN_MASTERPASSWORD=changeit
   AS_ADMIN_PASSWORD=adminadmin
   AS_ADMIN_USERPASSWORD=xxx

Когда я запускаю эту же команду за пределами maven

C:\usr\bin\glassfish-3.1-b42-02_11_2011\bin\asadmin.bat --host localhost --port 4848 --user MKnuts6173c --passwordfile C:\usr\SYNCH\PACKT\3166\Chapters_Code\ch03\target\test-classes/passwd.local.file --interactive=false --echo=true --terse=false start-domain --verbose=false --upgrade=false --debug=true --domaindir "C:\\usr\\bin\\glassfish-3.1-b42-02_11_2011\\domains" domain1

У меня возникают те же проблемы, когда я не могу попасть в панель управления, ножурналы сервера теперь заполняются.

Ответы [ 3 ]

4 голосов
/ 30 марта 2011

У меня были похожие проблемы. Я закончил тем, что сдался и использовал обычную встроенную стеклянную рыбку, а не плагин maven. Это может быть неподходящим для тестовой среды.

Даже во встроенном glassfish не представляется возможным создавать пользователей, потому что команда create-file-user больше не принимает параметр --userpassword, а CommandRunner не понимает --passwordfile.

Создается впечатление, что встраиваемая стеклянная рыба менее широко используется и проверена: S

См .: http://java.net/jira/browse/GLASSFISH-16277 См .: Glassfish-Embedded-Maven-плагин - как развернуть ресурсы

1 голос
/ 19 марта 2012

У меня была похожая проблема, и я нашел это решение.Вам необходимо создать новый домен с паролем-файлом.Таким образом, аутентификация не требуется.

http://codingbone.wordpress.com/2011/03/07/continuous-deployment-deploying-to-glassfish-with-maven-and-teamcity/, короче:

cd ${glassfish.home}/bin ./asadmin create-domain --savemasterpassword=true my-apps

На хост-компьютере я создал / добавил файл ~ / .m2 / settings.xml.

<?xml version="1.0" encoding="UTF-8"?>
xmlns="[http://maven.apache.org/SETTINGS/1.0.0"]
xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance"]
xsi:schemaLocation="[http://maven.apache.org/SETTINGS/1.0.0] [http://maven.apache.org/xsd/settings-1.0.0.xsd">]
  <profiles>
    <profile>
      <id>glassfish-context</id>
      <properties>
        <local.glassfish.home>/Users/brass/bin/glassfishv3</local.glassfish.home>
        <local.glassfish.user>admin</local.glassfish.user>
        <local.glassfish.domain>my-apps</local.glassfish.domain>
        <local.glassfish.passfile>${local.glassfish.home}/glassfish/domains/${local.glassfish.domain}/master-password</local.glassfish.passfile>
      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>glassfish-context</activeProfile>
  </activeProfiles>
</settings>

В проекте pom.xml мы определяем профиль для развертывания Glassfish:

<profile>
  <id>glassfish-deploy</id>
  <pluginRepositories>
    <pluginRepository>
      <id>maven.java.net</id>
        <name>Java.net Maven2 Repository</name>
        <url>[http://download.java.net/maven/2</url>]
      </pluginRepository>
    </pluginRepositories>
    <build>
      <plugins>
      <plugin>
        <groupId>org.glassfish.maven.plugin</groupId>
        <artifactId>maven-glassfish-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <glassfishDirectory>${local.glassfish.home}</glassfishDirectory>
          <user>${local.glassfish.user}</user>
          <passwordFile>${local.glassfish.passfile}</passwordFile>
          <autoCreate>true</autoCreate>
          <debug>true</debug>
          <echo>false</echo>
          <terse>true</terse>
          <domain>
            <name>${local.glassfish.domain}</name>
            <adminPort>4848</adminPort>
            <httpPort>8080</httpPort>
            <httpsPort>8443</httpsPort>
            <iiopPort>3700</iiopPort>
            <jmsPort>7676</jmsPort>
            <reuse>false</reuse>
          </domain>
          <components>
            <component>
              <name>${project.artifactId}</name>
              <artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
            </component>
          </components>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>
0 голосов
/ 28 февраля 2013

Вы можете использовать пароль по умолчанию "changeit", как здесь написано http://amanica.blogspot.de/2009/07/get-rid-of-glassfish-master-password.html.

Измените pom.xml следующим образом:

<user>admin</user>
<adminPassword>changeit</adminPassword>

, и он будет развернутВаш проект на Glassfish.

...