装好mysql和jboss3.2先。
1.在mysql中建一数据库dev_db,建一个用户有所有权限,名为myusername,密码为mypassword
2.下载mysql驱动。加入classpath,并放一份到jboss安装目录的server\default\lib下。
3.在jboss安装目录的Server\default\deploy下应该有一个mysql-ds.xml的文件。如果没有,建一个,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!--                                                                       -->
<!--  JBoss Server Configuration                                           -->
<!--                                                                       -->
<!-- ===================================================================== -->
<!-- $Id: mysql-ds.xml,v 1.1 2002/07/22 22:57:24 d_jencks Exp $ -->
<!-- ==================================================================== -->
<!--  Datasource config for MySQL using 2.0.11 driver                     -->
<!-- ==================================================================== -->
<datasources>
<local-tx-datasource>
<jndi-name>DevStore</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/dev_db?useUnicode=true&amp;characterEncoding=GB2312</connection-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<user-name>myusername</user-name>
<password>mypassworde</password>
</local-tx-datasource>
</datasources>
4.完了。写一个EJB测试连接:
在取得数据源时,这样写:
InitialContext context=new InitialContext();
DataSource dataSource=(DataSource)context.lookup("java:/DevStore");
....

解决方案 »

  1.   

    我也这样写了,为什么JBOSS窗口输出配置成功,可是在程序查询时却找不到呢?
      

  2.   

    在你的ejb-jar.xml文件中说明了数据源没有?
    加这一段:
    <enterprise-beans>
        <session>
          <display-name>XXXBean</display-name>
          <ejb-name>XXXEJB</ejb-name>
          <home>XXXHome</home>
          <remote>XXX</remote>
          <ejb-class>XXXBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Bean</transaction-type>
          <resource-ref>
            <res-ref-name>DevStore</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
          </resource-ref>
        </session>
      </enterprise-beans>
      

  3.   

    我是直接写了一段代码
    用InitialContext.lookup来查找数据源,程序报错说未绑定
      

  4.   

    是啊,我想配置成默认的CMP的datasource
    改怎么做呢?
      

  5.   

    我执行一楼的配置出现下面的错误
    16:16:20,890 ERROR [URLDeploymentScanner] MBeanException: Exception in MBean ope
    ration 'checkIncompleteDeployments()'
    Cause: Incomplete Deployment listing:
    Packages waiting for a deployer:
      <none>
    Incompletely deployed packages:
      <none>
    MBeans waiting for classes:
      <none>
    MBeans waiting for other MBeans:
    [ObjectName: jboss.mq:service=InvocationLayer,type=HTTP
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker
      jboss.web:service=WebServer Depends On Me: , ObjectName: jboss.mq:service=InvocationLayer,type=JVM
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker Depends On Me: , ObjectName: jboss.mq:service=InvocationLayer,type=RMI
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker Depends On Me: , ObjectName: jboss.mq:service=InvocationLayer,type=OIL
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker Depends On Me: , ObjectName: jboss.mq:service=InvocationLayer,type=UIL
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker Depends On Me: , ObjectName: jboss.mq:service=InvocationLayer,type=OIL2
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker Depends On Me: , ObjectName: jboss.mq:service=InvocationLayer,type=UIL2
     state: CREATED
     I Depend On:   jboss.mq:service=Invoker Depends On Me: , ObjectName: jboss.mq:service=Invoker
     state: CREATED
     I Depend On:   jboss.mq:service=TracingInterceptor Depends On Me:   jboss.mq:service=InvocationLayer,type=HTTP
      jboss.mq:service=InvocationLayer,type=JVM
      jboss.mq:service=InvocationLayer,type=RMI
      jboss.mq:service=InvocationLayer,type=OIL
      jboss.mq:service=InvocationLayer,type=UIL
      jboss.mq:service=InvocationLayer,type=OIL2
      jboss.mq:service=InvocationLayer,type=UIL2
    , ObjectName: jboss.mq:service=TracingInterceptor
     state: CREATED
     I Depend On:   jboss.mq:service=SecurityManager Depends On Me:   jboss.mq:service=Invoker
    , ObjectName: jboss.mq:service=SecurityManager
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager Depends On Me:   jboss.mq:service=TracingInterceptor
      jboss.mq.destination:service=Queue,name=DLQ
      jboss.mq.destination:service=Topic,name=testTopic
      jboss.mq.destination:service=Topic,name=securedTopic
      jboss.mq.destination:service=Topic,name=testDurableTopic
      jboss.mq.destination:service=Queue,name=testQueue
    , ObjectName: jboss.mq:service=DestinationManager
     state: CREATED
     I Depend On:   jboss.mq:service=PersistenceManager
      jboss.mq:service=StateManager Depends On Me:   jboss.mq:service=SecurityManager
      jboss.mq.destination:service=Queue,name=DLQ
      jboss.mq.destination:service=Topic,name=testTopic
      jboss.mq.destination:service=Topic,name=securedTopic
      jboss.mq.destination:service=Topic,name=testDurableTopic
      jboss.mq.destination:service=Queue,name=testQueue
      jboss.mq.destination:service=Queue,name=A
      jboss.mq.destination:service=Queue,name=B
      jboss.mq.destination:service=Queue,name=C
      jboss.mq.destination:service=Queue,name=D
      jboss.mq.destination:service=Queue,name=ex
    , ObjectName: jboss.mq:service=PersistenceManager
     state: FAILED
     I Depend On:   jboss.mq:service=MessageCache
      jboss.jca:service=LocalTxCM,name=DefaultDS Depends On Me:   jboss.mq:service=DestinationManager
    org.jboss.mq.SpyJMSException: Could not resolve uncommited transactions.  Messag
    e recovery may not be accurate; - nested throwable: (java.sql.SQLException: Synt
    ax error or access violation: You have an error in your SQL syntax.  Check the m
    anual that corresponds to your MySQL server version for the right syntax to use
    near 'SELECT TXID FROM JMS_TRANSACTIONS) AND TXOP='A'' at line 1), ObjectName: j
    boss.mq.destination:service=Queue,name=DLQ
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager Depends On Me: , ObjectName: jboss.mq.destination:service=Topic,name=testTopic
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager Depends On Me: , ObjectName: jboss.mq.destination:service=Topic,name=securedTop
    ic
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager Depends On Me: , ObjectName: jboss.mq.destination:service=Topic,name=testDurabl
    eTopic
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager Depends On Me: , ObjectName: jboss.mq.destination:service=Queue,name=testQueue
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager
      jboss.mq:service=SecurityManager Depends On Me: , ObjectName: jboss.mq.destination:service=Queue,name=A
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager Depends On Me: , ObjectName: jboss.mq.destination:service=Queue,name=B
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager Depends On Me: , ObjectName: jboss.mq.destination:service=Queue,name=C
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager Depends On Me: , ObjectName: jboss.mq.destination:service=Queue,name=D
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager Depends On Me: , ObjectName: jboss.mq.destination:service=Queue,name=ex
     state: CREATED
     I Depend On:   jboss.mq:service=DestinationManager Depends On Me: ]