I have tried both the combinations Marc. I believe it might be a problem with
my class. I have to post the source tomorrow since I dont carry my work to
home :-) The classes are entity classes which I have reverse engineered
using the Hibernate Tools plugin for Eclipse. They are EJB 3.0 compatible
and work fine with hibernate.

I appreciate the help,
best wishes and good night
Jan


Patrick Linskey-2 wrote:
> 
> Can you post the source to the Scale class?
> 
> -Patrick
> 
> On 7/11/07, Janap <[EMAIL PROTECTED]> wrote:
>>
>> Thx for the info Craig...got that step working. Didnt have time for
>> research
>> for the past2 days,but now Im back with another problem.
>>
>> My web project structure is as follows..
>>
>> /build/classes/test/Scale.class
>>
>> /src/test/Scale.java
>>
>> /web/WEB-INF/classes/META-INF/persistence.xml
>> /web/WEB-INF/classes/META-INF/orm.xml
>>
>> /web/WEB-INF/lib
>>
>> Following is my persistence.xml
>>
>> <persistence xmlns="http://java.sun.com/xml/ns/persistence";
>> version="1.0">
>> <persistence-unit name="myPersistence" 
>> transaction-type="RESOURCE_LOCAL">
>>         <provider>
>>             org.apache.openjpa.persistence.PersistenceProviderImpl
>>         </provider>
>>         <mapping-file>orm.xml</mapping-file>
>>         <class>test.Scale</class>
>>         <properties>
>>             <property name="openjpa.ConnectionURL" value="myurl"/>
>>             <property name="openjpa.ConnectionDriverName"
>> value="oracle.jdbc.driver.OracleDriver"/>
>>             <property name="openjpa.ConnectionUserName" value="myuser"/>
>>             <property name="openjpa.ConnectionPassword" value="mypwd"/>
>>             <property name="openjpa.Log"
>> value="DefaultLevel=TRACE,Tool=TRACE"/>
>>         </properties>
>> </persistence-unit>
>> </persistence>
>>
>>
>>
>> For runtime enhancement is start Tomcat within Eclipse with the following
>> VM
>> arguments :
>>
>> -javaagent:C:\Programme\Eclipse\workspace\JPAWebTest\web\WEB-INF\lib\openjpa-all-0.9.6-incubating.jar=addDefaultConstructor=false
>> ,properties=C:\Programme\Eclipse\workspace\JPAWebTest\web\WEB-INF\classes\META-INF\persistence.xml,-scanDevPath=true,
>> directory=C:\Programme\Eclipse\workspace\JPAWebTest\build\classes,-tmpClassLoader=false
>>
>>
>> My Tomcat starts properly with the following log :
>>
>> 15  TRACE  [main] openjpa.Runtime - Setting the following properties from
>> "file:/C:/Programme/Eclipse/workspace/JPAWebTest/web/WEB-INF/classes/META-INF/persistence.xml"
>> into configuration: {openjpa.ConnectionUserName=myuser,
>> openjpa.ConnectionPassword=mypwd,
>> openjpa.Log=DefaultLevel=TRACE,Tool=TRACE,
>> openjpa.MetaDataFactory=Resources=orm.xml, Types=test.Scale,
>> javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl,
>> openjpa.ConnectionURL=myurl,
>> openjpa.ConnectionDriverName=oracle.jdbc.driver.OracleDriver}
>> 186  INFO   [main] openjpa.MetaData - Found 1 classes with metadata in 0
>> milliseconds.
>>
>>
>> Then as I try to run this servlet code :
>>
>>         EntityManagerFactory emf =
>> Persistence.createEntityManagerFactory("myPersistence");
>>
>>         EntityManager em = emf.createEntityManager();
>>         em.getTransaction().begin();
>>
>>         Scale tab = new Scale(5);
>>         em.persist(tab);
>>         em.getTransaction().commit();
>>         em.close();
>>         emf.close();
>>
>> I run into an exception which I believe because my class is not somehow
>> enhanced :
>>
>> 62  TRACE  [http-8090-Processor24] openjpa.MetaData - Using metadata
>> factory
>> "[EMAIL PROTECTED]".
>> 93  INFO   [http-8090-Processor24] openjpa.jdbc.JDBC - Using dictionary
>> class "org.apache.openjpa.jdbc.sql.OracleDictionary".
>> 202  INFO   [http-8090-Processor24] openjpa.MetaData - Found 1 classes
>> with
>> metadata in 16 milliseconds.
>> 95452  TRACE  [http-8090-Processor24] openjpa.Enhance - "test/Scale"
>> requires runtime enhancement: true
>> 95561  WARN   [http-8090-Processor24] openjpa.Enhance - An exception was
>> thrown while attempting to perform class file transformation on
>> "test/Scale":
>> java.lang.IllegalArgumentException: java.lang.ClassNotFoundException:
>> test.Scale
>>         at serp.util.Strings.toClass(Strings.java:211)
>>         at serp.util.Strings.toClass(Strings.java:140)
>>         at serp.bytecode.BCClass.getType(BCClass.java:565)
>>         at
>> org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:187)
>>         at
>> org.apache.openjpa.enhance.PCClassFileTransformer.transform(PCClassFileTransformer.java:124)
>>         at
>> sun.instrument.TransformerManager.transform(TransformerManager.java:122)
>>         at
>> sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
>>         at java.lang.ClassLoader.defineClass1(Native Method)
>>         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>>
>>
>> I tried out different combinations but was not successful...probably
>> someone
>> could find the flaw..
>>
>> best wishes
>> Jan
>>
>>
>>
>> Hi,
>>
>> This is from the Java SE 6 documentation. It explains "all":
>> Command-Line Interface
>>
>> On implementations with a command-line interface, an agent is started
>> by adding this option to the command-line:
>>
>> -javaagent:jarpath[=options]
>> jarpath is the path to the agent JAR file. options is the agent
>> options. This switch may be used multiple times on the same command-
>> line, thus creating multiple agents. More than one agent may use the
>> same jarpath. An agent JAR file must conform to the JAR file
>> specification.
>> The manifest of the agent JAR file must contain the attribute Premain-
>> Class. The value of this attribute is the name of the agent class.
>> The agent class must implement a public static premain method similar
>> in principle to the main application entry point. After the Java
>> Virtual Machine (JVM) has initialized, each premain method will be
>> called in the order the agents were specified, then the real
>> application main method will be called. Each premain method must
>> return in order for the startup sequence to proceed.
>> The premain method has one of two possible signatures. The JVM first
>> attempts to invoke the following method on the agent class:
>> public static void premain(String agentArgs, Instrumentation inst);
>> If the agent class does not implement this method then the JVM will
>> attempt to invoke:
>>
>> public static void premain(String agentArgs);
>> The agent class may also have an agentmain method for use when the
>> agent is started after VM startup. When the agent is started using a
>> command-line option, the agentmain method is not invoked.
>>
>> The agent class will be loaded by the system class loader (see
>> ClassLoader.getSystemClassLoader). This is the class loader which
>> typically loads the class containing the application main method. The
>> premain methods will be run under the same security and classloader
>> rules as the application main method. There are no modeling
>> restrictions on what the agent premain method may do. Anything
>> application main can do, including creating threads, is legal from
>> premain.
>>
>> Each agent is passed its agent options via the agentArgs parameter.
>> The agent options are passed as a single string, any additional
>> parsing should be performed by the agent itself.
>>
>> If the agent cannot be resolved (for example, because the agent class
>> cannot be loaded, or because the agent class does not have an
>> appropriate premain method), the JVM will abort. If a premain method
>> throws an uncaught exception, the JVM will abort.
>>
>>
>>
>> Craig
>>
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Runtime-Enhancement-in-Eclipse-tf4049770.html#a11537016
>> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Patrick Linskey
> 202 669 5907
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Runtime-Enhancement-in-Eclipse-tf4049770.html#a11548186
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to