Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JBoss 5.0 Mysql


Автор: v0ffka 28.6.2010, 20:38
Подскажите плз как связать сабжевые вещи?

Делю след.

1 В папку C:\jboss-5.0.0.GA-jdk6\jboss-5.0.0.GA\server\default\lib скопировал mysql-connector-java-5.1.7-bin.jar

2 В папку C:\jboss-5.0.0.GA-jdk6\jboss-5.0.0.GA\server\default\deploy скопировал измененный mysql-ds.xml

Код

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: mysql-ds.xml 41017 2006-02-07 14:26:14Z acoliver $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://mysql-hostname:3306/db_students</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>87654321</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
      -->

    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>



Создаю простое web-приложение с сервлетом

Код

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter __pw = response.getWriter();        
        Properties __props = new Properties();
        __props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        __props.put(Context.PROVIDER_URL, "localhost");        
        
        try {
            InitialContext __initCntx = new InitialContext(__props);
            DataSource __ds = (DataSource) __initCntx.lookup("MySqlDS");
            Connection __connection = __ds.getConnection();
            if(__connection == null) __pw.print("null");
            else __pw.print("not null");
        } catch (NamingException e) {            
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }    
        
    }



в лог вываливет вот такие ошибки

20:18:36,453 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080
20:18:36,484 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009
20:18:36,484 INFO [ServerImpl] JBoss (Microcontainer) [5.0.0.GA (build: SVNTag=JBoss_5_0_0_GA date=200812042120)] Started in 34s:203ms
20:18:52,718 ERROR [STDERR] javax.naming.NameNotFoundException: MySqlDS not bound
20:18:52,718 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
20:18:52,718 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
20:18:52,718 ERROR [STDERR] at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
20:18:52,718 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:443)
20:18:52,718 ERROR [STDERR] at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
20:18:52,718 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
20:18:52,718 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
20:18:52,718 ERROR [STDERR] at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
20:18:52,718 ERROR [STDERR] at sun.rmi.transport.Transport$1.run(Unknown Source)
20:18:52,718 ERROR [STDERR] at java.security.AccessController.doPrivileged(Native Method)
20:18:52,718 ERROR [STDERR] at sun.rmi.transport.Transport.serviceCall(Unknown Source)
20:18:52,718 ERROR [STDERR] at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
20:18:52,734 ERROR [STDERR] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
20:18:52,734 ERROR [STDERR] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
20:18:52,734 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
20:18:52,750 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
20:18:52,750 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)
20:18:52,750 ERROR [STDERR] at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
20:18:52,750 ERROR [STDERR] at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
20:18:52,750 ERROR [STDERR] at sun.rmi.server.UnicastRef.invoke(Unknown Source)
20:18:52,750 ERROR [STDERR] at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
20:18:52,750 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:713)
20:18:52,750 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:673)
20:18:52,750 ERROR [STDERR] at javax.naming.InitialContext.lookup(Unknown Source)
20:18:52,750 ERROR [STDERR] at logicPckg.SimpleServlet.doGet(SimpleServlet.java:37)
20:18:52,750 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
20:18:52,750 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
20:18:52,750 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
20:18:52,750 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
20:18:52,750 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
20:18:52,750 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
20:18:52,750 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
20:18:52,750 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
20:18:52,750 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
20:18:52,750 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
20:18:52,750 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
20:18:52,750 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
20:18:52,750 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)

Автор: jeank 29.6.2010, 17:06
Ну неужели в документации JBoss нет примеров? В гуглях на крайний случай...

Автор: ki6opr 30.6.2010, 04:35
нужно вот такое jndi имя искать:
java:MySqlDS

до EE6 небыло спецификации на jndi имена и каждый вендор делал так как ему было угодно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)