[英]Java Web Application Error - Can't find classes that are located in WEB-INF/classes directory
我首先在沒有部署任何應用程序的情況下啟動我的WebSphere Application Server 8.5.5.0,它可以正常啟動,下面是文本。
Launching defaultServer (WebSphere Application Server 8.5.5.0/wlp-1.0.3.20130510-0831) on Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_51-b13 (en_US)
[AUDIT ] CWWKE0001I: The server defaultServer has been launched.
[INFO ] CWWKE0002I: The kernel started after 1.714 seconds
[INFO ] CWWKF0007I: Feature update started.
[AUDIT ] CWWKZ0058I: Monitoring dropins for applications.
[INFO ] CWWKF0008I: Feature update completed in 2.472 seconds.
[AUDIT ] CWWKF0011I: The server defaultServer is ready to run a smarter planet.
[INFO ] CWWKO0219I: TCP Channel defaultHttpEndpoint has been started and is now listening for requests on host 127.0.0.1 (IPv4: 127.0.0.1) port 9080.
在啟動WebSphere時,我使用Eclipse將war文件導出到Eclipse,它將部署到plugins目錄中。 這部分也成功了,我在服務器日志中獲得了其他輸出:
[INFO ] CWWKZ0018I: Starting application iaat.
[WARNING ] CWWJP9991W: openjpa.Runtime: Warn: An error occurred while registering a ClassTransformer with JPAPUnitInfo(PuId=iaat#iaat.war#DB2-Config)@3476b7f1. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available.
[INFO ] CWWJP9990I: openjpa.Runtime: Info: OpenJPA dynamically loaded a validation provider.
[INFO ] SRVE0169I: Loading Web Module: iaat.
[INFO ] SRVE0250I: Web Module iaat has been bound to default_host.
[AUDIT ] CWWKT0016I: Web application available (default_host):
[AUDIT ] CWWKZ0001I: Application iaat started in 6.774 seconds.
我的問題是當我嘗試使用WebSphere提供的URL來啟動我的應用程序時。 在Internet Explorer中顯示頁面時,我在WebSphere日志中收到以下消息。 我確實查看了生成的War文件以及它抱怨的類文件,該文件位於WEB-INF / classes / com / bah / iaat / model / data / Proposal
[INFO ] FFDC1015I: An FFDC Incident has been created: "org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/iaatadmin-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: WEB-INF/classes/com/bah/iaat/model/data/Proposal (wrong name: com/bah/iaat/model/data/Proposal) com.ibm.ws.webcontainer.servlet.ServletWrapper.init 181" at ffdc_14.03.14_18.20.49.0.log
[ERROR ] Uncaught.init.exception.thrown.by.servlet
iaatadmin
iaat
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/iaatadmin-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: WEB-INF/classes/com/bah/iaat/model/data/Proposal (wrong name: com/bah/iaat/model/data/Proposal)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:922)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:161)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:322)
at [internal classes]
Caused by: java.lang.NoClassDefFoundError: WEB-INF/classes/com/bah/iaat/model/data/Proposal (wrong name: com/bah/iaat/model/data/Proposal)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:278)
at [internal classes]
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.ejb.packaging.NativeScanner.getClassesInJar(NativeScanner.java:136)
at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:485)
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:852)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:597)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:288)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
... 18 more
至於您的錯誤(第3個片段)-在我看來,您在類路徑中缺少一個jar /類。
至於您,警告(第二個片段)我也遇到類似的問題,根據openJPA網站,可以放心地忽略它。
http://openjpa.apache.org/integration.html
與Spring集成:
使用OpenJPA構建時間增強功能時,無需配置Spring loadTimeWeaver。 創建EntityManagerFactory時,OpenJPA將記錄以下警告消息, 但是可以安全地忽略它。
在使用PersistenceUnitInfo注冊ClassTransformer時警告[main]:名稱'PuName',根URL [file:/.../]。 該錯誤已被使用。 要查看它,請將openjpa.Runtime日志級別設置為TRACE。 加載時類轉換將不可用。
請參閱Spring文檔以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.