[jboss-user] [EJB 3.0] - EJB3 Client, exception: java.lang.NoSuchFieldError
mrducnguyen
do-not-reply at jboss.com
Tue Jan 15 20:01:35 EST 2008
I'm trying to use EBJ3 to manage a table in my database, when I ran my test client, I always received this:
Exception in thread "main" java.lang.NoSuchFieldError: TRACE
| at org.jboss.logging.Log4jLoggerPlugin.isTraceEnabled(Log4jLoggerPlugin.java:85)
| at org.jboss.logging.Logger.isTraceEnabled(Logger.java:122)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:660)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
| at javax.naming.InitialContext.lookup(InitialContext.java:392)
| at TestEJBClient.main(TestEJBClient.java:31)
Although I have created two properties files and referenced all the jar in the JBOSS_HOME/client directory... I'm stuck
Anyone please help! I need to do this urgently.
Below is all the code:
// Table ADMIN:
| // Username nvarchar(20) PK
| // Password nvarchar(20)
|
| **** Entity bean: Admin ****
| @Entity
| @Table(name = "Admin", schema = "dbo", catalog = "TungaRestaurant", uniqueConstraints = {})
| public class Admin implements java.io.Serializable {
| private String username;
| private String password;
|
| public Admin(String username, String password) {
| this.username = username;
| this.password = password;
| }
|
| @Id
| @Column(name = "Username", unique = true, nullable = false, insertable = true, updatable = true, length = 20)
| public String getUsername() {
| return this.username;
| }
| public void setUsername(String username) {
| this.username = username;
| }
|
| @Column(name = "Password", unique = false, nullable = false, insertable = true, updatable = true, length = 20)
| public String getPassword() {
| return this.password;
| }
| public void setPassword(String password) {
| this.password = password;
| }
| }
|
| *** Session Bean to manage Admin Entity: AdminBean ***
| @Stateless
| public class AdminBean implements Serializable, AdminMan, AdminBeanLocal, AdminBeanRemote {
| @PersistenceContext
| EntityManager em;
| public int delete(Admin admin) {
| return delete (admin.getUsername());
| }
|
| public int delete(String usr) {
| int retVal = 0;
| Admin admin = em.find(Admin.class, usr);
| try
| {
| em.remove(admin);
| }
| catch (Exception ex)
| {
| retVal = -1;
| }
| return retVal;
| }
|
| public Admin findAdmin(String usr) {
| return em.find(Admin.class, usr);
| }
|
| public int save(Admin admin) {
| int retVal = 0;
| try {
| Admin dbadmin = em.find(Admin.class, admin.getUsername());
| if (dbadmin == null)
| em.persist(admin);
| else
| {
| dbadmin.setPassword(admin.getPassword());
| em.flush();
| }
| } catch (Exception ex) {
| retVal = -1;
| }
| return retVal;
| }
| }
|
| *** Interface AdminMan ****
| public interface AdminMan {
| /*
| * Return an the Admin with username
| * @param String username
| * @return a tunga.ejb.Admins object
| */
| public Admin findAdmin(String usr);
|
| /*
| * Save the Admin's information to database, if the Admin is existed, the info
| * will be update, if not, a new Admin will be inserted to database.
| * @param tunga.ejb.Admin the Admin object that holds information
| * @return 0 if ok, <0 if not
| */
| public int save(Admin admin);
|
| /*
| * Delete the Admin from the database
| * @param tunga.ejb.Admin the Admin object that holds information
| * @return 0 if ok, <0 if not
| */
| public int delete(Admin admin);
|
| /*
| * Delete the Admin from the database
| * @param int the Admin's username
| * @return 0 if ok, <0 if not
| */
| public int delete(String usr);
| }
|
| *********************************
| The Client:
|
| **** File: jndi.properties ****
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
| java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
| java.naming.provider.url=localhost:1099
|
| ***** File: log4j.properties *****
| log4j.appender.stdout=org.apache.log4j.ConsoleAppender
| log4j.appender.stdout.Target=System.out
| log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
| log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
| log4j.rootLogger=debug, stdout
|
| **** Class test Client
| public class TestEJBClient {
| public static void main(String[] args) {
| Context context;
| try
| {
| context = new InitialContext();
| AdminMan adminMan = (AdminMan)context.lookup("AdminBean");
|
| Admin admin = new Admin("admin","123");
| adminMan.save(admin);
|
| } catch (NamingException e)
| {
| e.printStackTrace();
| }
| }
| }
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4120274#4120274
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4120274
More information about the jboss-user
mailing list