- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 Spring 的 jee jndi-lookup
标记访问 tomcat 中的 JNDI datasource
。
异常表明我没有正确注册我的数据源
,但我无法弄清楚为什么不正确。
这是我的代码:-
service-context.xml:-
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee.xsd">
<context:component-scan base-package="spitter" />
<mvc:annotation-driven />
<jee:jndi-lookup id="dataSource" jndi-name="/jdbc/spitterDS" resource-ref="true" />
</beans>
webapp/META-INF/context.xml:-
<Context path="/spitter" reloadable="true" cachingAllowed="false" antiResourceLocking="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/spitterDS" auth="Container" type="org.apache.commons.dbcp.BasicDataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/spitter" />
</Context>
web.xml:-
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="2.4">
<display-name>Spitter</display-name>
<resource-ref>
<description>Spitter DS</description>
<res-ref-name>jdbc/spitterDS</res-ref-name>
<res-type>org.apache.commons.dbcp.BasicDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:service-context.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
最后,
MainController.java:-
package spitter.mvc;
import java.sql.Connection;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.sql.DataSource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/")
public class MainController {
@Resource(name="dataSource")
private DataSource dataSource;
@RequestMapping(method = RequestMethod.GET)
public String showHome(Model model) throws SQLException{
Connection con = dataSource.getConnection();
return "spitter";
}
}
我在 Eclipse kepler
中为 JEE 开发人员使用 Tomcat 7
。当我在 eclipse 中启动 tomcat 服务器时出现异常:-
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name [jdbc/spitterDS] is not bound in this Context. Unable to find [jdbc].
我假设我在某个地方打错了字,但找不到它。请帮忙!
最佳答案
"/jdbc/spitterDS"
不等于 "jdbc/spitterDS"
。
在service-context.xml
文件中,
改变
<jee:jndi-lookup id="dataSource" jndi-name="/jdbc/spitterDS" resource-ref="true" />
到
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/spitterDS" resource-ref="true" />
编辑:
Error creating bean with name 'dataSource':
根据文档:
... in the
@Resource(name="jdbc/Foo") DataSource ds;
annotation, the global JNDI name isjdbc/Foo
.
...
The @Resource annotation in the application code looks like this:
@Resource(name="jdbc/helloDbDs") javax.sql.DataSource ds;
改变:
@Resource(name="dataSource")
private DataSource dataSource;
收件人:
@Resource(name="jdbc/spitterDS")
private DataSource dataSource;
关于javax.naming.NameNotFoundException : Name [jdbc/spitterDS] is not bound in this Context. 无法找到 [jdbc],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934989/
我从我的 Java EE Web 应用程序中收到此注入(inject)/JNDI 查找错误: type Exception report message descriptionThe server e
安装 ADT r22 后,每次关闭我的应用程序时,我都会在 LogCat 中收到此异常: E/LuckyLauncherView(227): in setViewEveryArea() E/Lucky
我正在运行一个使用 JBoss5 容器的 ejb 示例。我正在使用一个例子 from here(Part one) . 在示例中,我在 JBoss 中部署了 bean,在 Tomcat 中部署了一个应
我从 Crashlytics 收到错误消息,指出某些设备缺少 com.google.android.webview。这怎么可能? java.lang.RuntimeException: Unable
我再次搜索这个问题,我无法使用 java config 找到 jndi 数据库。在此之前,我使用 xml 并且它工作得很好,但在 java 配置中它会导致问题; XML 代码:
出现此异常时我正在使用 spring-ldap: 服务器未知异常:[LDAP: error code 32 - No Such Object]; nested exception is javax.n
我正在开发一个 Java 企业应用程序,该应用程序具有与 EAR 捆绑在一起的 EJB 层和 WEB 层。我面临的问题是,我的 EJB 层中有一些实体,当我尝试在 WEB 层中通过 JNDI 获取它们
我使用 com.sun.jersey.spi.spring.container.servlet.SpringServlet 创建了两个 Jersey servlet 项目。我使用 Jersey 1.1
我正在尝试构建一个通知并显示它,还为我正在显示的 Intent 构建一个堆栈。但是我得到一个 NameNotFoundException。 Intent resultIntent = new Inte
我有这个非常简单的代码(Glassfish 3.1.2): Context ic = new InitialContext(); ConnectionFactory connectionFactory
我想从 jetty 切换到 tomcat。我得到 NameNotFoundException,因为 tomcat 没有找到在 jetty-web.xml 中并在 applicationContext.
我有这个非常简单的代码(Glassfish 3.1.2): Context ic = new InitialContext(); ConnectionFactory connectionFactory
更新:好吧,似乎只有当我尝试在本地调试时才会出现这个问题。在 Jetty(不是同一台机器)上发布时效果很好。本地调试时是否可以配置Run-Jetty-Run使用的jetty.xml文件? 我只是浪费了
我不明白为什么会出现这个异常。 在我的主要 Activity 中,在 onCreate 方法中我首先有这段代码: try { PackageInfo info = this.ge
我有一个 .java 文件: .... import android.content.pm.ApplicationInfo; import android.content.pm.PackageI
我正在将我的 spring jsf 项目从 ANT 迁移到 maven,同时在 jboss 5 服务器中部署时出现以下错误。 错误 [ContextLoader] 上下文初始化失败org.spring
这可能是非常基本的,但我已经坚持了几个小时了,所以请听我说完。 我正在尝试在 Eclipse 中 Glassfish 4.0 上的 Java 7 Web 应用程序中进行基于 JDBCRealm 的身份
我在 netbean 7.3 中用 jboss-7.1.1 Final 创建了一个 Ejb 项目 在 Ejb 模块中我有这些: LibrarySessionBeanRemote.java packag
我遇到一个问题,出现以下错误。项目有关于此服务的 jar 和我的 web.xml 以下 请帮助我。 ejb/KpsSessionFacade Session tr.com.m
我无法将 Weblogic (12c) 定义的 JNDI 数据源映射到本地 jndi 名称。 我在 weblogic mysql 数据源中有一个数据源定义为“mysqltestds”,我想将 Web
我是一名优秀的程序员,十分优秀!