users@glassfish.java.net

Re: Issue with maven-embedded-glassfish-plugin version 3.1(3.1.1)

From: Bhavanishankar <bhavanishankara.sapaliga_at_oracle.com>
Date: Thu, 23 Feb 2012 10:46:02 +0530

Hi Vasile,

Ok I will try to create a test case and log an issue. Will get back to
you if I could not reproduce the issue.

Thanks,

Bhavani

On 02/22/2012 04:25 PM, Mirea Vasile wrote:
>
> Hi Bhavani,
>
> I tryed this solution to set the memory options for maven.
> It helps.
> Now I get on Widnows 7 and on linux the same error:
> org.springframework.ws.soap.client.SoapFaultClientException: org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.internal.ast.HqlToken [select count(*) from com.ws.web.persistence.jpa.DdClass where ipAddress = ?]
> at org.springframework.ws.soap.client.core.SoapFaultMessageResolver.resolveFault(SoapFaultMessageResolver.java:37)
> at org.springframework.ws.client.core.WebServiceTemplate.handleFault(WebServiceTemplate.java:774)
> at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:600)
> at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:537)
> at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:384)
> at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:378)
> at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:370)
> Seems the deployment doenst work corectly using the admin goal.
>
> Maybe you can create a issue for this problem too.
>
> A use-case will be:
> the deployed application is a spring ws application who is using JPA
> and Hibernate for persistence.
> The JPA classes are located in another jar file who is in the
> dependecies of the web service application and the file is found in
> the glassfish directory.
> Still the embedded-glassfish is not able to locate the JPA classes.
> The client of the web service is normally deployed with the
> embedded-glassfish(it is a Spring MVC web application).
>
> I cannot provide a sample project because I use database connections
> and to modify it, it takes to much time.
> Maybe this use-case helps you to make an idea and to fix the problem.
> I tryed with version 3.1 and with version 3.1.1 and I have the same
> problem.
>
>
> Regards,
> Vasile.
>
>
> ------------------------------------------------------------------------
> *Von:* Bhavanishankar <bhavanishankara.sapaliga_at_oracle.com>
> *An:* Mirea Vasile <mirea_vasile_at_yahoo.com>
> *Cc:* "users_at_embedded-glassfish.java.net"
> <users_at_embedded-glassfish.java.net>; "users_at_glassfish.java.net"
> <users_at_glassfish.java.net>
> *Gesendet:* 18:21 Dienstag, 21.Februar 2012
> *Betreff:* Re: Issue with maven-embedded-glassfish-plugin version
> 3.1(3.1.1)
>
> Hi Vasile,
>
> You can try setting higher PermGen space using MAVEN_OPTS environment
> variable, something like:
>
> MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
>
> Thanks,
>
> Bhavani
>
> On 02/21/2012 10:32 PM, Mirea Vasile wrote:
>>
>>
>> Hi Bhavani,
>>
>> trying to run the same application under linux I get the following
>> issue :
>> 21.02.2012 17:44:01 org.glassfish.api.ActionReport failure
>> SCHWERWIEGEND: Exception while preparing the app
>> 21.02.2012 17:44:01 com.sun.enterprise.v3.server.ApplicationLifecycle deploy
>> SCHWERWIEGEND: PermGen space
>> java.lang.OutOfMemoryError: PermGen space
>> at org.hibernate.event.service.internal.EventListenerRegistryImpl.prepareListenerMap(EventListenerRegistryImpl.java:235)
>> at org.hibernate.event.service.internal.EventListenerRegistryImpl.<init>(EventListenerRegistryImpl.java:97)
>> at org.hibernate.event.service.internal.EventListenerServiceInitiator.initiateService(EventListenerServiceInitiator.java:51)
>> at org.hibernate.event.service.internal.EventListenerServiceInitiator.initiateService(EventListenerServiceInitiator.java:38)
>> at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91)
>> at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:177)
>> at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:150)
>> at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
>> at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyHibernateListeners(BeanValidationIntegrator.java:292)
>> at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:134)
>> at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:294)
>> at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
>> at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
>> at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
>> at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
>> at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
>> at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:205)
>> at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:119)
>> at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:214)
>> at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:483)
>> at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:221)
>> at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:167)
>> at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:872)
>> at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
>> at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
>> at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
>> at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
>> at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
>> at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
>> at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
>> at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
>> at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
>> Build timed out. Aborting
>>
>> It seems the deploy command it generates some issues to glassfish under linux.
>> What should I do in this situation ?
>>
>> Thanks,
>> Vasile.
>>
>> ------------------------------------------------------------------------
>> *Von:* Bhavanishankar <bhavanishankara.sapaliga_at_oracle.com>
>> <mailto:bhavanishankara.sapaliga_at_oracle.com>
>> *An:* Mirea Vasile <mirea_vasile_at_yahoo.com>
>> <mailto:mirea_vasile_at_yahoo.com>
>> *Cc:* "users_at_embedded-glassfish.java.net"
>> <mailto:users_at_embedded-glassfish.java.net>
>> <users_at_embedded-glassfish.java.net>
>> <mailto:users_at_embedded-glassfish.java.net>;
>> "users_at_glassfish.java.net" <mailto:users_at_glassfish.java.net>
>> <users_at_glassfish.java.net> <mailto:users_at_glassfish.java.net>
>> *Gesendet:* 18:13 Montag, 20.Februar 2012
>> *Betreff:* Re: Issue with maven-embedded-glassfish-plugin version
>> 3.1(3.1.1)
>>
>> Hi Vasile,
>>
>> "\" characters getting replaced on Windows seems to be bug. Please
>> file a bug for it in issuetracker^[1]
>>
>> Since "glassfish.embedded.tmpdir" system property is the way of
>> specifying where the temp. domain dir should get created, what you
>> are seeing is the right behaviour.
>>
>> For the second application deployment, you should ideally file an
>> enhancement request in issuetracker^[1] . But as a workaround, you
>> can use admin goal^[2] of the plugin. For you reference, I have
>> attached pom.xml snippet which can do this.
>>
>> Thanks,
>>
>> Bhavani
>>
>> [1] http://java.net/jira/browse/GLASSFISH
>> [2]
>> http://embedded-glassfish.java.net/nonav/plugindocs/3.1/admin-mojo.html
>>
>>
>> On 02/20/2012 10:02 PM, Mirea Vasile wrote:
>>>
>>>
>>> Hi Bhavani,
>>>
>>> Thank you very much for the answer.
>>> Unfortunately is not working properly.
>>> The path ${project.build.directory}/glassfish is replaced with :
>>>
>>> T:\workspace2\slave-server-webui\target/glassfish
>>>
>>> Unfortunately the plugin replace all "\" and the path remains like:
>>> Set system property [glassfish.embedded.tmpdir =
>>> T:workspace2slave-server-webui
>>> arget/glassfish]
>>>
>>> Maybe you can correct this bug(my build runs on windows 7).
>>>
>>> I found a workaround in my case:
>>> I use target/glassfish and then the plugin use this path additional
>>> to the app path and then the plugin deploy glassfish under:
>>> T:\workspace2\slave-server-webui\target\glassfish\
>>> Then the glassfish directory will be:
>>>
>>>
>>> T:\workspace2\slave-server-webui\target\glassfish\gfembed8580213734252944528tmp
>>>
>>>
>>> Now my question is why this tmp directory is additionally generated ?
>>> My problem is I want to copy another application in the autodeploy
>>> directory of embedded glassfish.
>>> My integration tests for my application slave-server-webui are using
>>> another application ( a web service)
>>> I need to copy in the pre-integration pfase this additional web
>>> service application in the embedded glassfish otherwise my
>>> application slave-server-webui and his integration tests won't work.
>>>
>>> Maybe you can suggest me a better solution for my case.
>>> I describe my problem here :
>>> http://stackoverflow.com/questions/9280413/maven-embedded-glassfish-plugin-deploying-2-applications
>>>
>>> Unfortunattly I got no answer to my question, so my only idea was to
>>> copy in the autodeploy directory on the embedded glassfish my second
>>> application(the web service).
>>> Thanks for helping with using embeded glassfish plugin for maven.
>>>
>>> Regards,
>>> Vasile
>>> ------------------------------------------------------------------------
>>> *Von:* Bhavanishankar <bhavanishankara.sapaliga_at_oracle.com>
>>> <mailto:bhavanishankara.sapaliga_at_oracle.com>
>>> *An:* Mirea Vasile <mirea_vasile_at_yahoo.com>
>>> <mailto:mirea_vasile_at_yahoo.com>
>>> *Cc:* "users_at_glassfish.java.net" <mailto:users_at_glassfish.java.net>
>>> <users_at_glassfish.java.net> <mailto:users_at_glassfish.java.net>;
>>> "users_at_embedded-glassfish.java.net"
>>> <mailto:users_at_embedded-glassfish.java.net>
>>> <users_at_embedded-glassfish.java.net>
>>> <mailto:users_at_embedded-glassfish.java.net>
>>> *Gesendet:* 7:25 Montag, 20.Februar 2012
>>> *Betreff:* Re: Issue with maven-embedded-glassfish-plugin version
>>> 3.1(3.1.1)
>>>
>>> Hi,
>>>
>>> With 3.1 (onwards) you should set the instanceRoot iff you have
>>> pre-created domain directory.
>>>
>>> Otherwise, if you intend to make the embedded GlassFish use a
>>> different temp. directory for its tiny instance root creation, then
>>> you should set this in embedded plugin configuration:
>>>
>>> <configuration>
>>> ...
>>>
>>> <systemProperties>
>>>
>>> <property>glassfish.embedded.tmpdir=${project.build.directory}/glassfish</property>
>>>
>>> </systemProperties>
>>>
>>> ...
>>> </configuration>
>>>
>>> HTH,
>>>
>>> Bhavani
>>>
>>> On 02/15/2012 04:04 PM, Mirea Vasile wrote:
>>>>
>>>>
>>>> Hi,
>>>>
>>>> I have the following issue:
>>>>
>>>> I am using the maven-embedded-glassfish-plugin .
>>>> I am having the following configuration in maven for it:
>>>>
>>>> <plugin>
>>>> <groupId>org.glassfish</groupId>
>>>> <artifactId>maven-embedded-glassfish-plugin</artifactId>
>>>> <version>3.0</version>
>>>>
>>>> <configuration>
>>>> <goalPrefix>embedded-glassfish</goalPrefix>
>>>> <serverID>localhost</serverID>
>>>> <name>${build.finalName}</name>
>>>> <app>${project.build.directory}/${build.finalName}.war</app>
>>>> <port>8080</port>
>>>>
>>>> <instanceRoot>${project.build.directory}/glassfish</instanceRoot>
>>>>
>>>> <autoDelete>true</autoDelete>
>>>>
>>>> </configuration>
>>>>
>>>> <executions>
>>>> <execution>
>>>> <id>start-glassfish</id>
>>>> <phase>pre-integration-test</phase>
>>>> <goals>
>>>> <goal>start</goal>
>>>> </goals>
>>>> </execution>
>>>> <execution>
>>>> <id>glassfish-deploy</id>
>>>> <phase>pre-integration-test</phase>
>>>> <goals>
>>>> <goal>deploy</goal>
>>>> </goals>
>>>> </execution>
>>>> <execution>
>>>> <id>glassfish-undeploy</id>
>>>> <phase>post-integration-test</phase>
>>>> <goals>
>>>> <goal>undeploy</goal>
>>>> </goals>
>>>> </execution>
>>>> <execution>
>>>> <id>stop-glassfish</id>
>>>> <phase>post-integration-test</phase>
>>>> <goals>
>>>> <goal>stop</goal>
>>>> </goals>
>>>> </execution>
>>>> </executions>
>>>> </plugin>
>>>>
>>>> This configuration works just fine in the version 3.0.
>>>> Important is the option: <instanceRoot>
>>>>
>>>> In the Version 3.1 I am getting a strange error:
>>>> 15.02.2012 11:30:48
>>>> com.sun.enterprise.v3.server.DomainXmlPersistence getPidFile
>>>>
>>>> ERROR: Cannot obtain lockfile location T:\workspace2\web-app\
>>>> target\glassfish\config\lockfile, configuration changes will not be
>>>> persisted
>>>> java.io.IOException: The System cannot find the specied path.
>>>> at java.io.WinNTFileSystem.createFileExclusively(Native Method)
>>>> at java.io.File.createNewFile(File.java:883)
>>>> at
>>>> com.sun.enterprise.v3.server.DomainXmlPersistence.getPidFile(DomainXm
>>>> lPersistence.java:92)
>>>> at
>>>> com.sun.enterprise.v3.server.DomainXmlPersistence.accessRead(DomainXm
>>>> lPersistence.java:114)
>>>> at
>>>> org.glassfish.config.support.DomainXml.parseDomainXml(DomainXml.java:
>>>> 210)
>>>> ...
>>>>
>>>> In the version 3.0 the directory structure will be created by the
>>>> plugin, in the version 3.1 not any more and then I get this errors.
>>>> Something change in the new version or it is a bug ?
>>>>
>>>>
>>>> Thanks,
>>>> Vasile.
>>>>
>>>
>>>
>>
>>
>
>