Hi everyone! This is most likely a newbie question but it nevertheless got me stumped; I have Eclipse Indigo and a jBoss entity running on-top of an windows 7 64 bit OS.
I want to learn as much as possible about vaadin as I intend to use it in a larger project and it looks like it have what I want. Anyhow; I installed the vaadig plugins in eclipse, and created my very first vaadin application (hello world). Everything went smoothly. I expanded on that application and created som enifty buttons, labels etc. And everything went well and deployed nicely on the jboss entity.
I then decided to take the plunge and add some JPA functionality. Now thing went downhill. I took the AddressBook demo enhanced with JPA (as found in https://vaadin.com/wiki/-/wiki/Main/Adding%20JPA%20to%20the%20Address%20Book%20Demo) and created a new project in Eclipse.
The project looks Ok. I run a clean and build (just for the sake of it). I then deploy to the jboss entity (so far so good). Then I get;
=================================================================
Vaadin is running in DEBUG MODE.
Add productionMode=true to web.xml to disable debug features.
To show debug window, add ?debug to your application URL.
=================================================================
16:39:07,702 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web]
.[default-host]
.
[/AddressBook].[Addressbook Application]
] (http--127.0.0.1-8080-2) Servlet.service() for s
ervlet Addressbook Application threw exception: java.lang.InstantiationException: com.vaadin.demo.tutorial.addressbook.AddressBookApplication
at java.lang.Class.newInstance0(Unknown Source) [:1.6.0_30]
at java.lang.Class.newInstance(Unknown Source) [:1.6.0_30]
at com.vaadin.terminal.gwt.server.ApplicationServlet.getNewApplication(ApplicationServlet.java:82) [vaadin-6.7.6.jar:]
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.createApplication(AbstractApplicationServlet.java:978) [vaadin-6.7.6.jar:]
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.findApplicationInstance(AbstractApplicationServlet.java:801) [vaadin-6.7.6.jar:]
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:456) [vaadin-6.7.6.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.7.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:151) [jboss-as-web-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.7.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:897) [jbossweb-7.0.7.Final.jar:]
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:626) [jbossweb-7.0.7.Final.jar:]
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2033) [jbossweb-7.0.7.Final.jar:]
at java.lang.Thread.run(Unknown Source) [:1.6.0_30]
The code which should run and produce an application looks like;
@WebServlet (urlPatterns = "/*")
public static class Servlet extends AbstractApplicationServlet
{
@EJB
PersonManager personManager;
@Override
protected Application getNewApplication (HttpServletRequest request) throws ServletException
{
return new AddressBookApplication (personManager);
}
@Override
protected Class<? extends Application> getApplicationClass () throws ClassNotFoundException
{
return AddressBookApplication.class;
}
}
Obviously it seems to fail in getNewApplication. It is just silent, I have no clue why it fails to instantiate the project…
The deployed system looks Ok, from what I can say with my limited experience.
web.xml looks ok.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>AddressBook</display-name>
<context-param>
<description>
Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<servlet-name>Addressbook Application</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>
Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>com.vaadin.demo.tutorial.addressbook.AddressBookApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Addressbook Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
Its just not starting… For whatever reason. The vaadin revision is 6.7.6 (in the /lib).
This is driving me crazy… It should just work… After all it is a demonstration example :-).
Persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence
version = "2.0"
xmlns = "http://java.sun.com/xml/ns/persistence"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="My_descriptor" transaction-type="JTA">
<!--provider>org.eclipse.persistence.jpa.PersistenceProvider</provider-->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<!-- jar-file>lib/AddressBook.jar</jar-file -->
<properties>
<property name = "hibernate.dialect" value = "org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<!-- property name = "hibernate.dialect" value = "org.hibernate.dialect-PostgreSQLDialect" / -->
<!-- property name = "eclipselink.ddl-generation" value = "create-tables"/ -->
</properties>
</persistence-unit>
</persistence>
I add the complete project in the attachements… (as is).
12296.zip (4.44 MB)