[jboss-user] [Installation, Configuration & DEPLOYMENT] - Re: 4.2.2 Switching name cases from proper case to camel cas

mstraub do-not-reply at jboss.com
Sat Jan 10 15:42:36 EST 2009


The database is case sensitive base on other requirements. (Not my decision.) However, JBoss is changing the case on many names when the beans are deployed.  We did not have this problem until we upgraded from 4.0.5 to 4.2.2.  Something in 4.2.2 is forcing names to camel case.  We are having to put @Table and @Column tags in all entities.  After tagging all of the methods the error goes away.  It also camel cased some names in the WSDL that are proper case in the bean.
Stack trace:

  | 2009-01-10 14:31:43,637 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
  | javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
  |         at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
  |         at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
  |         at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.aspects.remoting.ReplicantsManagerInterceptor.invoke(ReplicantsManagerInterceptor.java:51)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
  |         at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.wsf.container.jboss42.InvocationHandlerEJB3.invoke(InvocationHandlerEJB3.java:103)
  |         at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220)
  |         at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408)
  |         at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272)
  |         at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189)
  |         at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122)
  |         at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
  |         at java.lang.Thread.run(Thread.java:595)
  | Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
  |         at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
  |         at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:73)
  |         at globaltec.serveremailserverinterface.serveremailserverinterface.GetServerAddresses(serveremailserverinterface.java:59)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
  |         at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
  |         at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
  |         ... 41 more
  | Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
  |         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
  |         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  |         at org.hibernate.loader.Loader.doList(Loader.java:2223)
  |         at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
  |         at org.hibernate.loader.Loader.list(Loader.java:2099)
  |         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
  |         at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
  |         at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
  |         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
  |         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
  |         at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:64)
  |         ... 55 more
  | Caused by: java.sql.SQLException: Invalid column name 'serverAddress_ServerAddress'.
  |         at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
  |         at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
  |         at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
  |         at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
  |         at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
  |         at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
  |         at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:236)
  |         at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
  |         at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
  |         at org.hibernate.loader.Loader.doQuery(Loader.java:674)
  |         at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
  |         at org.hibernate.loader.Loader.doList(Loader.java:2220)
  |         ... 63 more
  | 
  | 
Bean Code

  | @WebMethod ( operationName = "GetServerAddresses" )
  |   @WebResult ( name = "GetServerAddresses", targetNamespace = GTNameSpace.g_NameSpace )
  |   public globaltec.serveremailserverinterface.ServerAddress[] GetServerAddresses()
  |   {
  |      Query query = manager.createQuery( "SELECT c from ServerAddress AS c" );
  |      List<globaltec.serveremailserverinterface.ServerAddress> Items = (List<globaltec.serveremailserverinterface.ServerAddress>)query.getResultList();
  |      ServerAddress[] ObjArray = new ServerAddress[ Items.size()];
  |      int Index = 0;
  |      for (Iterator it = Items.iterator(); it.hasNext(); )
  |      {
  |        ObjArray[Index] = (ServerAddress)it.next();
  |        ++Index;
  |      }
  |      return ObjArray;
  |   }
  | 
Entity Class:

  | @XmlType(name="ServerAddress")
  | @Table(name="dbo.ServerAddress")
  | @Entity
  | public class ServerAddress implements java.io.Serializable
  | {
  |   private int     ServerAddress;
  |   private String  ServerAddress_ServerAddress;
  |   private int     ServerAddress_Port;
  |   private String  ServerAddress_Description;
  | 
  |   @Id
  |   @Column( name = "`ServerAddress`" )
  |   public int getServerAddress() {return ServerAddress;}
  |   public void setServerAddress( int Val ) {ServerAddress = Val;}
  | 
  |   public String getServerAddress_ServerAddress() {return ServerAddress_ServerAddress;}
  |   public void setServerAddress_ServerAddress( String Val ) {ServerAddress_ServerAddress = Val;}
  | 
  |   public int getServerAddress_Port() {return ServerAddress_Port;}
  |   public void setServerAddress_Port( int Val ) {ServerAddress_Port = Val;}
  | 
  |   public String getServerAddress_Description() {return ServerAddress_Description;}
  |   public void setServerAddress_Description( String Val ) {ServerAddress_Description = Val;}
  | }
  | 
SQL For Table:

  | CREATE TABLE [dbo].[ServerAddress](
  | 	[ServerAddress] [int] IDENTITY(1,1) NOT NULL,
  | 	[ServerAddress_ServerAddress] [varchar](256) COLLATE Latin1_General_CS_AI NOT NULL,
  | 	[ServerAddress_Port] [int] NOT NULL,
  | 	[ServerAddress_Description] [varchar](256) COLLATE Latin1_General_CS_AI NULL,
  | 	[ServerAddress_ReturnPath] [varchar](512) COLLATE Latin1_General_CS_AI NOT NULL,
  |  CONSTRAINT [PK_ServerAddress] UNIQUE NONCLUSTERED 
  | (
  | 	[ServerAddress] ASC
  | )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
  | ) ON [PRIMARY]
  | 


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4200796#4200796

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4200796



More information about the jboss-user mailing list