<Context docBase="F:\workspace\jxopen\webroot" path="/jxopen" reloadable="true" > 
 
<Resource name="jdbc/platform" auth="Container" type="com.atomikos.jdbc.AtomikosDataSourceBean"
   factory="com.atomikos.tomcat.BeanFactory"   
   uniqueResourceName="xaDBMS"
   xaDataSourceClassName="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"
   xaProperties.url="jdbc:mysql://localhost:3306/jxopen   xaProperties.user="root"
   xaProperties.password="stone"   
   maxIdleTime="60" minPoolSize="20" maxPoolSize="100" testQuery="select 1 from dual"/>
  <Resource name="TransactionManager" auth="Container" type="com.atomikos.icatch.jta.J2eeTransactionManager"
   factory="com.atomikos.icatch.jta.TransactionManagerFactory" />
<Transaction factory="com.atomikos.icatch.jta.UserTransactionFactory"/>
</Context>J不用spring和hibernate ,JDK用1.5 ,mysql的驱动用了几个版本都是一样的错误提示:javax.naming.NamingException: error creating AtomikosDataSourceBean [Root exception is javax.naming.NamingException: Class is not a AtomikosDataSourceBean: com.atomikos.jdbc.AtomikosDataSourceBean]
at com.atomikos.tomcat.BeanFactory.getObjectInstance(BeanFactory.java:76)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:106)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
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:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.naming.NamingException: Class is not a AtomikosDataSourceBean: com.atomikos.jdbc.AtomikosDataSourceBean
at com.atomikos.tomcat.BeanFactory.getObjectInstance(BeanFactory.java:47)
... 33 more
[ERROR] Servlet.service() for servlet jsp threw exception  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:253)
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspService(index_jsp.java:126)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
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:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    JSP测试代码
    <%@ page language="java"  pageEncoding="utf-8"%>
    <%@page import="java.sql.*"%>
    <%@page import="javax.sql.*"%>
    <%@page import="javax.naming.*"%>
    <%@page import="javax.transaction.UserTransaction"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
    + request.getServerName() + ":" + request.getServerPort()
    + path + "/";
    %>
    <%

    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
      </head>
      
      <body>
        This is my JSP page. <br>
        
        <a href="./admin/common_default_public_list.action">test</a>
        
          <a href="./admin/list.action">test1</a>
          
          
          
    <br>After update:
    <%  
        ResultSet rs = null;
    Statement stmt = null;
    UserTransaction ut = null;
    Connection conn = null;
    DataSource dsPlatForm = null;
    try {
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    dsPlatForm= (DataSource) envCtx
    .lookup("jdbc/platform");
    // ut = (UserTransaction) initCtx.lookup("java:comp/UserTransaction");
    conn = dsPlatForm.getConnection();
    //ut.begin();
    System.out.println("<<< beginning the transaction >>>"); stmt = conn.createStatement(
    // ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE
    );
    rs = stmt  
    .executeQuery("SELECT * FROM PRJ_PROJECT  WHERE project_id =1");
    rs.next();
    } catch (Exception e) {
    e.printStackTrace();
    }
    %>
    <%=rs.getString("project_name")%>
          
      </body>
    </html>
      

  2.   

    dsPlatForm= (DataSource) envCtx
    .lookup("jdbc/platform");取数据源就报错了,还没到lookup  UserTransaction ;
    另外用JOTM去配置,数据库连接没问题,但是lookup  UserTransaction时提示不能创建资源。以上两种配置能解决一种都给分,注意:不用spring或hibernate