### Java工程项目中错误信息解析与总结 在Java项目的开发过程中,经常会遇到各种各样的错误信息。这些错误信息虽然有时候令人头疼,但它们也是解决问题的重要线索。本文将对一个具体的Java项目错误信息进行深入分析,帮助开发者更好地理解问题所在,并提供相应的解决思路。 #### 错误信息概览 本次分析的错误信息主要来自于一个Java Web应用,该应用在启动时出现了与数据源(`dataSource`)相关的异常。具体错误信息如下: ``` 15:53:53,359 ERROR [common] 获取默认数据源 Error creating bean with name 'dataSource' defined in resource loaded through InputStream: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'J2YD' Resolved; remaining name 'J2YD' org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in resource loaded through InputStream: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'J2YD' Resolved; remaining name 'J2YD' Caused by: javax.naming.NameNotFoundException: Unable to resolve 'J2YD' Resolved; remaining name 'J2YD' ... ``` #### 错误信息分析 从上述错误信息可以看出,主要的问题在于Spring框架在初始化名为`dataSource`的Bean时发生了异常,异常的具体类型是`javax.naming.NameNotFoundException`,表明无法找到名称为`J2YD`的JNDI资源。 1. **错误来源:**根据错误信息中的堆栈跟踪,可以发现这个异常是由WebLogic服务器内部抛出的。这表明WebLogic在尝试查找名为`J2YD`的命名服务资源时失败了。 2. **Spring与JNDI集成问题:**Spring框架在初始化`dataSource` Bean时依赖于JNDI来获取实际的数据源。这里的`J2YD`很可能是指向数据源的一个JNDI名称。由于Spring未能通过JNDI找到对应的资源,因此触发了异常。 3. **错误位置:** - `org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:124)` 表明是在Spring的JNDI模板类中发生的异常。 - `weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:897)` 显示具体的异常是由WebLogic服务器的命名节点处理类抛出的。 #### 解决方案探讨 针对上述问题,可以从以下几个方面入手解决: 1. **检查配置:**首先确认在WebLogic服务器的配置中是否正确配置了名称为`J2YD`的JNDI资源。这通常可以在WebLogic的控制台或配置文件中找到相关信息。 2. **Spring配置审查:**确保在Spring的配置文件中正确指定了JNDI数据源的名称。例如: ```xml <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/J2YD"/> </bean> ``` 3. **环境变量与上下文:**确保应用程序运行的环境变量和上下文中正确设置了指向JNDI资源的路径。 4. **日志分析:**进一步查看WebLogic的日志文件,寻找有关`J2YD`的更多信息。这有助于更准确地定位问题所在。 5. **测试与验证:**在解决问题后,通过单元测试和集成测试来验证更改是否有效解决了问题。 #### 结论 在Java项目的开发过程中,对于类似的数据源配置问题,需要从多个角度出发来排查。通过对错误信息的深入分析以及对相关配置的仔细审查,通常能够找到问题的根源并加以解决。希望本文的分析能为遇到类似问题的开发者提供一定的帮助。
如果需要新建工程,最好是新建weblogic用户域(不要用以前工程所用的域),否则将出现功能菜单显示不完整及jsp页面不完整,甚至找错误都很难找等。总之,最好重新配个新的用户域。
问题一:
15:53:53,359 ERROR [common] 获取默认数据源出错:Error creating bean with name 'dataSource' defined in resource loaded through InputStream: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'J2YD' Resolved ; remaining name 'J2YD'
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in resource loaded through InputStream: Initialization of bean failed; nested exception is javax.naming.NameNotFoundException: Unable to resolve 'J2YD' Resolved ; remaining name 'J2YD'
javax.naming.NameNotFoundException: Unable to resolve 'J2YD' Resolved ; remaining name 'J2YD'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:897)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:230)
at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:154)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:188)
at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:256)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:359)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:124)
at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:86)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:122)
at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:147)
at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:86)
at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:104)
at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:164)
at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:151)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:537)
at highsoft.common.ServiceLocator.getDataSource(ServiceLocator.java:258)
at highsoft.common.db.DBTool.getDataSource(DBTool.java:545)
at highsoft.common.db.DBTool.<init>(DBTool.java:87)
at highsoft.common.db.DBTool.<init>(DBTool.java:72)
at highsoft.framework.plugin.JNDIConnectorPlugin.init(JNDIConnectorPlugin.java:74)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1163)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:473)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:1028)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:904)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:883)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:822)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3333)
at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3278)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3259)
at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5949)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:862)
at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2127)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2168)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2115)
at weblogic.management.deploy.slave.SlaveDeployer$Application.setActivation(SlaveDeployer.java:3082)
at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications(SlaveDeployer.java:1751)
at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:359)
at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:966)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
at weblogic.Server.main(Server.java:32)
15:53:53,359 ERROR [common] 检查当前数据库连接时出现异常:null
java.lang.NullPointerException
******************
剩余5页未读,继续阅读
- 粉丝: 2
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- 用于将 Power BI 嵌入到您的应用中的 JavaScript 库 查看文档网站和 Wiki 了解更多信息 .zip
- (源码)基于Arduino、Python和Web技术的太阳能监控数据管理系统.zip
- (源码)基于Arduino的CAN总线传感器与执行器通信系统.zip
- (源码)基于C++的智能电力系统通信协议实现.zip
- 用于 Java 的 JSON-RPC.zip
- 用 JavaScript 重新实现计算机科学.zip
- (源码)基于PythonOpenCVYOLOv5DeepSort的猕猴桃自动计数系统.zip
- 用 JavaScript 编写的贪吃蛇游戏 .zip
- (源码)基于ASP.NET Core的美术课程管理系统.zip