[Persistence, JBoss/CMP, Hibernate, Database] - JBoss 4.2.2.GA + Hibernate + tutorial application from Getti
by zlosynus
Hi,
I am new user to JBoss and Hibernate. I wanted to test deploy sample application. I have downloaded http://docs.jboss.org/jbossas/getting_started/v5/pdf/startguide.pdf and started go step by step throught chapter 9. I downloaded source codes http://docs.jboss.org/jbossas/getting_started/v3/startguide40.zip.
Because I am using MySQL in JBoss, I made some reconfigurations in hibernate example, first hibernate-service.xml:
| <server>
| <mbean code="org.jboss.hibernate.jmx.Hibernate"
| name="jboss.har:service=Hibernate">
| <attribute name="DatasourceName">java:/DefaultDS</attribute>
| <attribute name="Dialect">org.hibernate.dialect.MySQLDialect</attribute>
| <attribute name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>
| <attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>
| <!-- <attribute name="Hbm2ddlAuto">create-drop</attribute> -->
| </mbean>
| </server>
|
Here is my mysql_ds.xml:
| <?xml version="1.0" encoding="UTF-8"?>
|
| <!-- $Id: mysql-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ -->
| <!-- Datasource config for MySQL using 3.0.9 available from:
| http://www.mysql.com/downloads/api-jdbc-stable.html
| -->
|
| <datasources>
| <local-tx-datasource>
| <jndi-name>DefaultDS</jndi-name>
| <connection-url>jdbc:mysql://localhost:3306/cezAS</connection-url>
| <driver-class>com.mysql.jdbc.Driver</driver-class>
| <user-name>username</user-name>
| <password>password</password>
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
| <!-- should only be used on drivers after 3.22.1 with "ping" support
| <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
| -->
| <!-- sql to call when connection is created
| <new-connection-sql>some arbitrary sql</new-connection-sql>
| -->
| <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
| <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
| -->
|
| <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
| <metadata>
| <type-mapping>mySQL</type-mapping>
| </metadata>
| </local-tx-datasource>
| </datasources>
|
Then I tried to deploy example:
ant -f jboss-build.xml
and everything went fine:
| 12:30:54,462 INFO [TomcatDeployer] undeploy, ctxPath=/roster, warUrl=.../tmp/deploy/tmp42306HibernateRoster.ear-contents/roster-exp.war/
| 12:30:54,514 INFO [SessionFactoryImpl] closing
| 12:30:54,559 INFO [EARDeployer] Undeploying J2EE application, destroy step: file:/usr/jboss/jboss-4.2.2.GA/server/default/deploy/HibernateRoster.ear
| 12:30:54,564 INFO [EARDeployer] Undeployed J2EE application: file:/usr/jboss/jboss-4.2.2.GA/server/default/deploy/HibernateRoster.ear
| 12:30:54,570 INFO [EARDeployer] Init J2EE application: file:/usr/jboss/jboss-4.2.2.GA/server/default/deploy/HibernateRoster.ear
| 12:30:54,744 INFO [Configuration] Searching for mapping documents in jar: roster.har
| 12:30:54,751 INFO [Configuration] Found mapping document in jar: org/jboss/roster/Player.hbm.xml
| 12:30:54,761 ERROR [DTDEntityResolver] Don't use old DTDs, read the Hibernate 3.x Migration Guide!
| 12:30:55,997 INFO [HbmBinder] Mapping class: org.jboss.roster.Player -> PlayerBean
| 12:30:55,999 INFO [NamingHelper] JNDI InitialContext properties:{}
| 12:30:56,008 INFO [DatasourceConnectionProvider] Using datasource: java:/DefaultDS
| 12:30:56,009 INFO [SettingsFactory] RDBMS: MySQL, version: 5.0.51a
| 12:30:56,010 INFO [SettingsFactory] JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )
| 12:30:56,010 INFO [Dialect] Using dialect: org.hibernate.dialect.MySQLDialect
| 12:30:56,011 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.transaction.JTATransactionFactory
| 12:30:56,011 INFO [NamingHelper] JNDI InitialContext properties:{}
| 12:30:56,012 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
| 12:30:56,012 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
| 12:30:56,012 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
| 12:30:56,012 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
| 12:30:56,012 INFO [SettingsFactory] Automatic flush during beforeCompletion(): enabled
| 12:30:56,012 INFO [SettingsFactory] Automatic session close at end of transaction: enabled
| 12:30:56,013 INFO [SettingsFactory] JDBC batch size: 15
| 12:30:56,013 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
| 12:30:56,013 INFO [SettingsFactory] Scrollable result sets: enabled
| 12:30:56,013 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): enabled
| 12:30:56,013 INFO [SettingsFactory] Connection release mode: after_statement
| 12:30:56,013 INFO [SettingsFactory] Maximum outer join fetch depth: 2
| 12:30:56,013 INFO [SettingsFactory] Default batch fetch size: 1
| 12:30:56,013 INFO [SettingsFactory] Generate SQL with comments: disabled
| 12:30:56,013 INFO [SettingsFactory] Order SQL updates by primary key: disabled
| 12:30:56,013 INFO [SettingsFactory] Order SQL inserts for batching: disabled
| 12:30:56,014 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
| 12:30:56,014 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
| 12:30:56,015 INFO [SettingsFactory] Query language substitutions: {}
| 12:30:56,015 INFO [SettingsFactory] JPA-QL strict compliance: disabled
| 12:30:56,015 INFO [SettingsFactory] Second-level cache: enabled
| 12:30:56,015 INFO [SettingsFactory] Query cache: disabled
| 12:30:56,015 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
| 12:30:56,015 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
| 12:30:56,016 INFO [SettingsFactory] Structured second-level cache entries: disabled
| 12:30:56,016 INFO [SettingsFactory] Statistics: disabled
| 12:30:56,016 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
| 12:30:56,016 INFO [SettingsFactory] Default entity-mode: pojo
| 12:30:56,016 INFO [SettingsFactory] Named query checking : enabled
| 12:30:56,020 INFO [SessionFactoryImpl] building session factory
| 12:30:56,041 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
| 12:30:56,042 INFO [NamingHelper] JNDI InitialContext properties:{}
| 12:30:56,047 INFO [Hibernate] SessionFactory successfully built and bound into JNDI [java:/hibernate/SessionFactory]
| 12:30:56,063 INFO [TomcatDeployer] deploy, ctxPath=/roster, warUrl=.../tmp/deploy/tmp42307HibernateRoster.ear-contents/roster-exp.war/
| 12:30:56,204 INFO [EARDeployer] Started J2EE application: file:/usr/jboss/jboss-4.2.2.GA/server/default/deploy/HibernateRoster.ear
|
But when I have tried to test client at http://localhost:8080/roster/players.jsp, i got following:
| 12:31:40,164 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
| org.apache.jasper.JasperException: Unable to compile class for JSP:
|
| An error occurred at line: 8 in the jsp file: /players.jsp
| SessionFactory cannot be resolved to a type
| 5:
| 6: <%
| 7: InitialContext ctx = new InitialContext();
| 8: SessionFactory factory = (SessionFactory)
| 9: ctx.lookup("java:/hibernate/SessionFactory");
| 10: Session hsession = factory.openSession();
| 11: try {
|
|
| An error occurred at line: 8 in the jsp file: /players.jsp
| SessionFactory cannot be resolved to a type
| 5:
| 6: <%
| 7: InitialContext ctx = new InitialContext();
| 8: SessionFactory factory = (SessionFactory)
| 9: ctx.lookup("java:/hibernate/SessionFactory");
| 10: Session hsession = factory.openSession();
| 11: try {
|
|
| An error occurred at line: 10 in the jsp file: /players.jsp
| Session cannot be resolved to a type
| 7: InitialContext ctx = new InitialContext();
| 8: SessionFactory factory = (SessionFactory)
| 9: ctx.lookup("java:/hibernate/SessionFactory");
| 10: Session hsession = factory.openSession();
| 11: try {
| 12: request.setAttribute("players",
| 13: hsession.find("from org.jboss.roster.Player order by name"));
|
|
| Stacktrace:
| at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
| at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
| at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
| at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
| at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
| at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
| at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
| at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316)
| at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
| at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
| 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:619)
|
Please, help me. Does anyone know, where can be problem??
Thanks!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4165845#4165845
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4165845
17 years, 9 months
[Installation, Configuration & DEPLOYMENT] - JBoss 4.0.4: Classloader not found exception when deploying
by engela
(JBoss 4.0.4, JDK 1.5)
I have two web applications, which are using the same jar file and are to be deployed on the same JBoss AS instance. In both cases the jar file will be included in the WEB-INF/lib, as potentially they will be using different version of the jar file. Both appplications are running fine when deployed on two different machines. However I have problems when deploying both WAR files on the same JBoss AS instance: For one particular command I get a Exception:
1:05:54,114 ERROR [[schedulerServiceExporter]] Servlet.service() for servlet schedulerServiceExporter threw exception
| java.lang.ClassNotFoundException: No ClassLoaders found for: com.dns.quartz.jobs.RunTaskJob
| at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:306)
| at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:511)
| at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Class.java:242)
| at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585)
| at org.springframework.remoting.rmi.CodebaseAwareObjectInputStream.resolveClass(CodebaseAwareObjectInputStream.java:104)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
| at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1433)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1288)
| at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
| at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
| at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
| at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
| at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
| at org.springframework.remoting.rmi.RemoteInvocationSerializingExporter.doReadRemoteInvocation(RemoteInvocationSerializingExporter.java:124)
| at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.readRemoteInvocation(HttpInvokerServiceExporter.java:117)
| at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.readRemoteInvocation(HttpInvokerServiceExporter.java:96)
|
After reading:
http://wiki.jboss.org/wiki/ClassLoadingConfiguration
http://java2.5341.com/msg/68202.html
I tried several scenarios to solve my problem but neither of these have worked:
1. Set the attribute Java2ClassLoadingCompliance in JBOSS_HOME\server\default\deploy\jbossweb-tomcat55.sar\conf\jboss-server.xml to a) true and b) false
2. Add the line to the jboss-web.xml of the first war file:
<loader-repository>com.dns:loader=my-webapp1.war</loader-repository>
and add the line tothe jboss-web.xml of the second war file
<loader-repository>com.dns:loader=my-webapp2.war</loader-repository>
3. Add the lines to both jboss-web.xml:
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
|
I am running out of ideas. Did anyone have similar problems and found a work around?
Thanks,
Anette
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4165838#4165838
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4165838
17 years, 9 months
[JBoss Cache: Core Edition] - Re: Best use of Jboss Cache Implementation
by manik.surtani@jboss.com
Yeah, there is no similar concept of "groups".
Fqn is basically a path in a tree structure. JBoss Cache uses a tree as a data structure, and stores key/value pairs in nodes in the tree.
Simplistically, if you did not care about any optimisations around the tree structure, you could just create Fqns based on the yupe of data you are storing, sort of like namespaces. E.g.,
| cache.put("/org/mycompany/customerdata", "customer1", c1);
|
Now since all locking and replication happens on a per-node basis, you may optimise further to do something like:
| cache.put("/org/mycompany/customerdata/customer1", "customer1", c1);
|
so that each node contains information pertaining to a single entity.
Regarding singletons, it is a valid pattern, only we don't implement it internally and prefer users to do this themselves based on their environment e.g., an IoC framework may have it's own mechanism of creating, maintaining and injecting singletons, a Java EE environment may use JNDI, or simplest of all, you may create a CacheSingleton class with a single static getInstance() method.
HTH,
Manik
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4165828#4165828
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4165828
17 years, 9 months