Here is the source code for Scale.java
----------------------------------------------
package test;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* Scale generated by hbm2java
*/
@Entity
@Table(name="SCALE"
)
public class Scale implements java.io.Serializable {
private long nscale;
private String description;
private Date dteingabe;
public Scale() {
}
public Scale(long nscale) {
this.nscale = nscale;
}
public Scale(long nscale, String description, Date dteingabe) {
this.nscale = nscale;
this.description = description;
this.dteingabe = dteingabe;
}
@Id
@Column(name="NSCALE", unique=true, nullable=false, precision=10,
scale=0)
public long getNscale() {
return this.nscale;
}
public void setNscale(long nscale) {
this.nscale = nscale;
}
@Column(name="DESCRIPTION")
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
@Temporal(TemporalType.DATE)
@Column(name="DTEINGABE", length=7)
public Date getDteingabe() {
return this.dteingabe;
}
public void setDteingabe(Date dteingabe) {
this.dteingabe = dteingabe;
}
}
----------------------------------------------
Janap wrote:
>
> I have tried both the combinations Marc. I believe it might be a problem
> with my class. I have to post it 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
>
>
>
>
> Marc Prud'hommeaux wrote:
>>
>>
>>
>> I'm doubtful that this will help, but I do notice that your agent
>> argument looks like:
>>
>> -javaagent:...,-scanDevPath=true,directory=...,-tmpClassLoader=false
>>
>> Note that the "-" at the beginning of the parameters is probably
>> causing them to be ignored. I think it needs to look like:
>>
>> -javaagent:...,scanDevPath=true,directory=...,tmpClassLoader=false
>>
>>
>>
>>
>> On Jul 11, 2007, at 2:27 AM, Janap 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.PersistenceP
>>> roviderImpl,
>>> 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.
>>>
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Runtime-Enhancement-in-Eclipse-tf4049770.html#a11556149
Sent from the OpenJPA Users mailing list archive at Nabble.com.