On 4 Nov 2012, at 02:27, Leon Wu wrote:

> After working around the issue, I found I cannot fix it. It might be caused
> by OpenJPA Eclipse plugin enhancer. I am going to use Ant for build and
> deploy.
> 
> Scott, is there any guide for using Ant? The first thing I am thinking was
> how to tell Ant the location of the Tomcat?


This particular configuration is described at:

http://incubator.apache.org/wookie/docs/developer/running.html

Under "Running Wookie with Tomcat and MySQL"

> 
> Thank you.
> 
> 
> On Sat, Nov 3, 2012 at 7:47 PM, Leon Wu <[email protected]> wrote:
> 
>> Thank you for the quick response, Scott.
>> 
>> After googling, OpenJPA has a eclipse plugin and it does the enhancement
>> for me (http://openjpa.apache.org/openjpaeclipseinstallation.html).
>> Following the steps from that link, the problem is fixed.
>> Now, I am face another problem.
>> 
>> 03.11.2012 19:45:34 ERROR
>> [org.apache.wookie.beans.jpa.JPAPersistenceManager.findWidgetByGuid():638]
>> Unexpected exception: <openjpa-2.0.0-r422266:935683 nonfatal user error>
>> org.apache.openjpa.persistence.ArgumentException: An error occurred while
>> parsing the query filter "SELECT w FROM Widget w WHERE w.guid = :guid".
>> Error message: The name "Widget" is not a recognized entity or identifier.
>> Perhaps you meant WidgetImpl, which is a close match. Known entity names:
>> [LicenseImpl, OAuthTokenImpl, SharedDataImpl, NameImpl,
>> PreferenceDefaultImpl, LocalizedBeanImpl, DescriptionImpl, AuthorImpl,
>> WidgetIconImpl, WidgetImpl, ParticipantImpl, PreferenceImpl,
>> WidgetInstanceImpl, FeatureImpl, StartFileImpl, ParamImpl]
>> 
>> <openjpa-2.0.0-r422266:935683 nonfatal user error>
>> org.apache.openjpa.persistence.ArgumentException: An error occurred while
>> parsing the query filter "SELECT w FROM Widget w WHERE w.guid = :guid".
>> Error message: The name "Widget" is not a recognized entity or identifier.
>> Perhaps you meant WidgetImpl, which is a close match. Known entity names:
>> [LicenseImpl, OAuthTokenImpl, SharedDataImpl, NameImpl,
>> PreferenceDefaultImpl, LocalizedBeanImpl, DescriptionImpl, AuthorImpl,
>> WidgetIconImpl, WidgetImpl, ParticipantImpl, PreferenceImpl,
>> WidgetInstanceImpl, FeatureImpl, StartFileImpl, ParamImpl]
>> 
>> at org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(
>> AbstractExpressionBuilder.java:119)
>> 
>> at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(
>> JPQLExpressionBuilder.java:194)
>> 
>> at
>> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(
>> JPQLExpressionBuilder.java:167)
>> 
>> at
>> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(
>> JPQLExpressionBuilder.java:242)
>> 
>> at
>> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(
>> JPQLExpressionBuilder.java:212)
>> 
>> at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(
>> JPQLExpressionBuilder.java:205)
>> 
>> at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$200(
>> JPQLExpressionBuilder.java:81)
>> 
>> at
>> org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(
>> JPQLExpressionBuilder.java:2387)
>> 
>> at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:61)
>> 
>> at org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(
>> ExpressionStoreQuery.java:154)
>> 
>> at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:671)
>> 
>> at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(
>> QueryImpl.java:652)
>> 
>> at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
>> QueryImpl.java:618)
>> 
>> at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(
>> QueryImpl.java:680)
>> 
>> at org.apache.openjpa.kernel.QueryImpl.compile(QueryImpl.java:587)
>> 
>> at org.apache.openjpa.persistence.EntityManagerImpl.createNamedQuery(
>> EntityManagerImpl.java:1027)
>> 
>> at org.apache.openjpa.persistence.EntityManagerImpl.createNamedQuery(
>> EntityManagerImpl.java:100)
>> 
>> at org.apache.wookie.beans.jpa.JPAPersistenceManager.findWidgetByGuid(
>> JPAPersistenceManager.java:629)
>> 
>> at org.apache.wookie.beans.util.PersistenceManagerFactory.initialize(
>> PersistenceManagerFactory.java:85)
>> 
>> at org.apache.wookie.server.ContextListener.contextInitialized(
>> ContextListener.java:110)
>> 
>> at org.apache.catalina.core.StandardContext.listenerStart(
>> StandardContext.java:4791)
>> 
>> at org.apache.catalina.core.StandardContext.startInternal(
>> StandardContext.java:5285)
>> 
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> 
>> at org.apache.catalina.core.ContainerBase.addChildInternal(
>> ContainerBase.java:901)
>> 
>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>> 
>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
>> 
>> at org.apache.catalina.startup.HostConfig.deployDescriptor(
>> HostConfig.java:650)
>> 
>> at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(
>> HostConfig.java:1582)
>> 
>> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>> 
>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> 
>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> 
>> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>> ThreadPoolExecutor.java:886)
>> 
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:908)
>> 
>> at java.lang.Thread.run(Thread.java:680)
>> 
>> Nov 3, 2012 7:45:34 PM org.apache.catalina.core.StandardContext
>> listenerStart
>> 
>> SEVERE: Exception sending context initialized event to listener instance
>> of class org.apache.wookie.server.ContextListener
>> 
>> <openjpa-2.0.0-r422266:935683 fatal user error>
>> org.apache.openjpa.persistence.InvalidStateException: The field "guid" of
>> instance "org.apache.wookie.beans.jpa.impl.WidgetImpl@3f4a0fe1" contained
>> a null value; the metadata for this field specifies that nulls are illegal.
>> 
>> at org.apache.openjpa.kernel.SingleFieldManager.preFlush(
>> SingleFieldManager.java:553)
>> 
>> at org.apache.openjpa.kernel.SingleFieldManager.preFlush(
>> SingleFieldManager.java:491)
>> 
>> at org.apache.openjpa.kernel.StateManagerImpl.preFlush(
>> StateManagerImpl.java:2957)
>> 
>> at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:40)
>> 
>> at org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(
>> StateManagerImpl.java:1047)
>> 
>> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2077)
>> 
>> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>> 
>> at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(
>> BrokerImpl.java:1955)
>> 
>> at org.apache.openjpa.kernel.LocalManagedRuntime.commit(
>> LocalManagedRuntime.java:81)
>> 
>> at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>> 
>> at org.apache.openjpa.kernel.DelegatingBroker.commit(
>> DelegatingBroker.java:925)
>> 
>> at org.apache.openjpa.persistence.EntityManagerImpl.commit(
>> EntityManagerImpl.java:559)
>> 
>> at org.apache.wookie.beans.jpa.JPAPersistenceManager.commit(
>> JPAPersistenceManager.java:340)
>> 
>> at org.apache.wookie.beans.util.PersistenceManagerFactory.initialize(
>> PersistenceManagerFactory.java:138)
>> 
>> at org.apache.wookie.server.ContextListener.contextInitialized(
>> ContextListener.java:110)
>> 
>> at org.apache.catalina.core.StandardContext.listenerStart(
>> StandardContext.java:4791)
>> 
>> at org.apache.catalina.core.StandardContext.startInternal(
>> StandardContext.java:5285)
>> 
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> 
>> at org.apache.catalina.core.ContainerBase.addChildInternal(
>> ContainerBase.java:901)
>> 
>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>> 
>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
>> 
>> at org.apache.catalina.startup.HostConfig.deployDescriptor(
>> HostConfig.java:650)
>> 
>> at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(
>> HostConfig.java:1582)
>> 
>> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>> 
>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> 
>> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> 
>> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>> ThreadPoolExecutor.java:886)
>> 
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:908)
>> 
>> at java.lang.Thread.run(Thread.java:680)
>> 
>> Nov 3, 2012 7:45:34 PM org.apache.catalina.core.StandardContext
>> startInternal
>> 
>> SEVERE: Error listenerStart
>> 
>> 
>> On Sat, Nov 3, 2012 at 7:23 PM, Scott Wilson <
>> [email protected]> wrote:
>> 
>>> On 3 Nov 2012, at 22:18, Leon Wu wrote:
>>> 
>>>> This is the first time of dealing with javaagent and just do the
>>> exception
>>>> asks.
>>>> I am just doing the classical way to run the wookie in Eclipse -
>>> importing
>>>> wookie, adding it to the Tomcat server and starting the Tomcat.
>>>> Should I use ant build to get the wookie.war and put the war in Tomcat?
>>> 
>>> That would probably be easier - I've never tried running it directly out
>>> of Eclipse using the Tomcat before - I presume this is the Eclipse web
>>> toolkit?
>>> 
>>> There is an ant task specifically for building and deploying Wookie using
>>> Tomcat (or similar):
>>> 
>>> ant deploy-webapp
>>> 
>>> ... which will deploy it to wherever servletEngine.webapp.dir  in
>>> build.properties is set to.
>>> 
>>>> 
>>>> 
>>>> On Sat, Nov 3, 2012 at 2:26 PM, Scott Wilson <
>>> [email protected]
>>>>> wrote:
>>>> 
>>>>> 
>>>>> On 3 Nov 2012, at 15:32, Leon Wu wrote:
>>>>> 
>>>>>> Thank you, Scott. It was missmatch issue.
>>>>>> But, I got another problem. I added javaagent but still got this
>>> error.
>>>>> 
>>>>> I don't really know anything about Javaagent; the bean enhancement is
>>> done
>>>>> automatically by OpenJPA during the Ant build and compile process.
>>>>> 
>>>>>> <openjpa-2.0.0-r422266:935683 nonfatal user error>
>>>>>> org.apache.openjpa.util.UserException: This configuration disallows
>>>>> runtime
>>>>>> optimization, but the following listed types were not enhanced at
>>> build
>>>>>> time or at class load time with a javaagent: "
>>>>>> org.apache.wookie.beans.jpa.impl.ParamImpl
>>>>>> org.apache.wookie.beans.jpa.impl.FeatureImpl
>>>>>> org.apache.wookie.beans.jpa.impl.WidgetIconImpl
>>>>>> org.apache.wookie.beans.jpa.impl.PreferenceDefaultImpl
>>>>>> org.apache.wookie.beans.jpa.impl.OAuthTokenImpl
>>>>>> org.apache.wookie.beans.jpa.impl.LocalizedBeanImpl
>>>>>> org.apache.wookie.beans.jpa.impl.WidgetInstanceImpl
>>>>>> org.apache.wookie.beans.jpa.impl.WidgetImpl
>>>>>> org.apache.wookie.beans.jpa.impl.ParticipantImpl
>>>>>> org.apache.wookie.beans.jpa.impl.DescriptionImpl
>>>>>> org.apache.wookie.beans.jpa.impl.PreferenceImpl
>>>>>> org.apache.wookie.beans.jpa.impl.SharedDataImpl
>>>>>> org.apache.wookie.beans.jpa.impl.AuthorImpl
>>>>>> org.apache.wookie.beans.jpa.impl.LicenseImpl
>>>>>> org.apache.wookie.beans.jpa.impl.NameImpl
>>>>>> org.apache.wookie.beans.jpa.impl.StartFileImpl".
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Fri, Nov 2, 2012 at 5:33 AM, Scott Wilson <
>>>>> [email protected]
>>>>>>> wrote:
>>>>>> 
>>>>>>> On 2 Nov 2012, at 00:45, Leon Wu wrote:
>>>>>>> 
>>>>>>>> Hi Scott,
>>>>>>>> 
>>>>>>>> You are exactly right. By step by step debugging, I found that my
>>>>>>>> context.xml is configured with derby db stuff and it found the
>>>>> datasource
>>>>>>>> after I changed it to mysql parameters.
>>>>>>>> However, it hits another problem. The Tomcat is hang on over there
>>> for
>>>>> a
>>>>>>>> while and throws almost the same exceptions.
>>>>>>>> By tracing down to the problem, it happens in JPAPersistenceManager
>>>>> (line
>>>>>>>> 293) when it tries to create the entity manager.
>>>>>>>>     entityManager = entityManagerFactory.createEntityManager();
>>>>>>>> 
>>>>>>>> and the actual exception is thrown by DataSourceFactory of openjpa
>>>>>>> package
>>>>>>>> (line 239)
>>>>>>>>     if (!factory2)
>>>>>>>>          conn = ds.getConnection(conf.getConnectionUserName(), conf
>>>>>>>>                     .getConnectionPassword());
>>>>>>>>     else
>>>>>>>> 
>>>>>>>> conf.getConnectionUserName and getConnectionPassword return null. I
>>> may
>>>>>>> not
>>>>>>>> know if it is correct or not.
>>>>>>> 
>>>>>>> The main thing to check is that your database name, database user
>>> name
>>>>> and
>>>>>>> database password set in your conf/wookie.xml match your actual MySQL
>>>>> set
>>>>>>> up.
>>>>>>> 
>>>>>>>> But after a step further, it hangs on there
>>>>>>>> and runtime exception stack is below. It might be the issue with
>>>>> openjpa
>>>>>>>> config but I don't know how to do that.
>>>>>>>> 
>>>>>>> 
>>>>>>> Actually this looks more like a driver problem. Do you have more than
>>>>> one
>>>>>>> MySQL connector jar on your classpath?
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>> 

Reply via email to