• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3518
  • Last Modified:

EJB3 problem with Jboss datasource??

I am new to EJB3 and am trying to run through the tutorial from http://www.laliluna.de/ejb-3-tutorial-jboss.html. I don't think my datasource is getting set up correctly. Here is the error from the Jboss server on start up.

13:38:01,717 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: persistence.units:jar=FirstEJB3Tutorial Ant.jar,unitName=FirstEjb3Tutorial
  State: NOTYETINSTALLED
  I Depend On:
    jboss.jca:name=ejb3ProjectDS,service=DataSourceBinding
  Depends On Me:
    jboss.j2ee:jar=FirstEJB3Tutorial Ant.jar,name=BookTestBean,service=EJB3

ObjectName: jboss.j2ee:jar=FirstEJB3Tutorial Ant.jar,name=BookTestBean,service=EJB3
  State: NOTYETINSTALLED
  I Depend On:
    persistence.units:jar=FirstEJB3Tutorial Ant.jar,unitName=FirstEjb3Tutorial

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.jca:name=ejb3ProjectDS,service=DataSourceBinding
  State: NOTYETINSTALLED
  Depends On Me:
    persistence.units:jar=FirstEJB3Tutorial Ant.jar,unitName=FirstEjb3Tutorial


13:38:02,092 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
13:38:02,170 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
13:38:02,185 INFO  [Server] JBoss (MX MicroKernel) [4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)] Started in 54s:735ms

I think the datasource is set up ok? This is from earlier in the output -

13:37:59,967 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=ejb3ExampleDS' to JNDI name 'java:ejb3ExampleDS'

Here is my mysql-ds.xml from the C:\jboss-4.2.2.GA\server\default\deploy directory

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

<!-- $Id: mysql-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ -->
<!--  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>ejb3ExampleDS</jndi-name>
    <connection-url>jdbc:mysql://mysql-localhost:3306/test</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>x</user-name>
    <password>y</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 -->
    <metadata>'
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

I have tried both
<connection-url>jdbc:mysql://mysql-localhost:3306/test</connection-url>
 and
<connection-url>jdbc:mysql://localhost:3306/test</connection-url>
for the <connection-url> syntax and same error with both.

Also here is my persistence.xml file --

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
   
      <persistence-unit name="FirstEjb3Tutorial" transaction-type="JTA">
              <jta-data-source>java:/ejb3ProjectDS</jta-data-source>
      </persistence-unit>
 
</persistence>

Is it the datasource causing the error??
0
amjava
Asked:
amjava
1 Solution
 
ramazanyichCommented:
you have this error due to names incompatibility.

On your mysql-ds.xml you name your datasource ejb3ExampleDS (it is a name between <jndi-name> elements)
but in persistence.xml you refer to it as ejb3ProjectDS.

But this names should be identical.
I suggest that you change it on mysql-ds.xml to ejb3ProjectDS.
So it should be:
<jndi-name>ejb3ProjectDS</jndi-name>
in mysql-ds.xml

better restart your jboss server too.
0
 
amjavaAuthor Commented:
Very nice. Thank you. It works great now. Finally my first EJB3! I really appreciate it ramazanyich.
0

Featured Post

Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now