2012-02-28 12 views
5

पर ईजेबी को तैनात करना मैं वास्तव में एक सरल नरकवर्ल्ड शैली ईजेबी आवेदन तैनात कर रहा हूं। ऐसा करते समय मैं मिलता है ...जेबीओएस 7.1

WARNING: -logmodule is deprecated. Please use the system property 'java.util.logging.manager' or the 'java.util.logging.LogManager' service loader. 
13:15:54,638 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA 
13:15:55,094 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA 
13:15:55,175 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.0.Final "Thunder" starting 
13:15:56,587 INFO [org.xnio] XNIO Version 3.0.3.GA 
13:15:56,592 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http) 
13:15:56,602 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA 
13:15:56,614 INFO [org.jboss.remoting] JBoss Remoting version 3.2.2.GA 
13:15:56,655 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers 
13:15:56,661 INFO [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem 
13:15:56,707 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem. 
13:15:56,793 INFO [org.jboss.as.connector] (MSC service thread 1-3) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.7.Final) 
13:15:56,822 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem 
13:15:56,839 INFO [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem 
13:15:56,881 INFO [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem 
13:15:56,889 INFO [org.jboss.as.naming] (MSC service thread 1-1) JBAS011802: Starting Naming Service 
13:15:56,898 INFO [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default] 
13:15:56,933 INFO [org.jboss.as.security] (MSC service thread 1-2) JBAS013100: Current PicketBox version=4.0.6.final 
13:15:56,989 INFO [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension 
13:15:57,324 INFO [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-2) JBoss Web Services - Stack CXF Server 4.0.1.GA 
13:15:57,501 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-4) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080 
13:15:58,264 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-2) JBAS015012: Started FileSystemDeploymentService for directory /usr/bin/jboss-as-7.1.0.Final/standalone/deployments 
13:15:58,265 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:4447 
13:15:58,265 INFO [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on /127.0.0.1:9999 
13:15:58,272 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found HelloWorld.war in deployment directory. To trigger deployment create a file called HelloWorld.war.dodeploy 
13:15:58,581 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report 
JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.jdbc-driver.com_mysql (missing) dependents: [service jboss.data-source.java:jboss/datasources/EjbMySql] 

13:15:58,589 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss AS 7.1.0.Final "Thunder" started (with errors) in 4548ms - Started 131 of 204 services (2 services failed or missing dependencies, 70 services are passive or on-demand) 

ऐसा लगता है कि मैं जोड़ने के लिए एक कहीं शामिल की जरूरत है, मेरे कोड बहुत सरल है ...

package server; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.ejb.EJB; 
import javax.persistence.EntityManagerFactory; 
import javax.persistence.PersistenceUnit; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import model.MyUser; 

/** 
* Servlet implementation class HelloServlet 
*/ 
@WebServlet("/HelloServlet") 
public class HelloServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 


    @EJB HelloBean bean; 
    @PersistenceUnit 
    EntityManagerFactory emF; 
    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public HelloServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out = response.getWriter(); 
     out.print("<html><body>"); 
     MyUser user = (MyUser)emF.createEntityManager().createQuery("select * from myuser").getResultList().get(0); 
     out.println("Username = " + user.getName()); 
     out.print("</body></html>"); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
    } 

} 

Persistance.xml नीचे दिखाया गया है ...

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 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_2_0.xsd"> 
    <persistence-unit name="HelloWorld"> 
     <jta-data-source>EjbMySql</jta-data-source> 
     <class>model.MyUser</class> 
    </persistence-unit> 
</persistence> 

मॉड्यूल/कॉम/mysql/मुख्य/Modules.xml इस प्रकार है के रूप में ...

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

<!-- 
    ~ JBoss, Home of Professional Open Source. 
    ~ Copyright 2010, Red Hat, Inc., and individual contributors 
    ~ as indicated by the @author tags. See the copyright.txt file in the 
    ~ distribution for a full listing of individual contributors. 
    ~ 
    ~ This is free software; you can redistribute it and/or modify it 
    ~ under the terms of the GNU Lesser General Public License as 
    ~ published by the Free Software Foundation; either version 2.1 of 
    ~ the License, or (at your option) any later version. 
    ~ 
    ~ This software is distributed in the hope that it will be useful, 
    ~ but WITHOUT ANY WARRANTY; without even the implied warranty of 
    ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
    ~ Lesser General Public License for more details. 
    ~ 
    ~ You should have received a copy of the GNU Lesser General Public 
    ~ License along with this software; if not, write to the Free 
    ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
    ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org. 
    --> 

<module xmlns="urn:jboss:module:1.0" name="com.mysql.jdbc"> 
    <resources> 
    <resource-root path="mysql-connector-java-5.1.18-bin.jar"/> 
    </resources> 
    <dependencies> 
    <module name="javax.api"/> 
    </dependencies> 
</module> 

Standalone.xml निम्नलिखित प्रविष्टि है ...

<subsystem xmlns="urn:jboss:domain:datasources:1.0"> 
      <datasources> 
      <datasource jndi-name="java:jboss/datasources/EjbMySql" pool-name="EjbMySql" enabled="true" use-java-context="true"> 
       <connection-url>jdbc:mysql://localhost:3306/ejbdb</connection-url> 
       <driver>com.mysql</driver> 
       <security> 
        <user-name>root</user-name> 
        <password>root</password> 
       </security> 
      </datasource> 
    <drivers> 
      <driver name="com.mysql" module="com.mysql.jdbc"> <xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class> </driver> 
     </drivers> 
     </datasources> 
     </subsystem> 

अपने प्रोजेक्ट में, मैं /WebContent/META-INF/services/mysql-connector-java-5.1.18-bin में MySQL जार की है। जार

क्या किसी के पास कोई विचार है?

धन्यवाद!

संपादित करें: कोशिश की ...

<datasource jndi-name="java:jboss/datasources/EjbMySql" pool-name="EjbMySql" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:mysql://localhost:3306/ejbdb</connection-url> 
        <driver>com.mysql.jdbc.Driver</driver> 
        <security> 
         <user-name>root</user-name> 
         <password>root</password> 
        </security> 

एक ही त्रुटि के साथ वापस आता है।

+0

अपने ड्राइवर नाम को "com.mysql.jdbc.Driver" में बदलने का प्रयास करें। –

+0

ने यह कोशिश की, अद्यतन प्रश्न, हालांकि कुछ भी ठीक नहीं किया: < – david99world

उत्तर

6

<JBOSS_HOME>/standalone/configuration/standalone.xml में <subsystem xmlns="urn:jboss:domain:datasources:1.0"> टैग ढूंढें और अंदर दिए गए <datasources> तत्व:

<datasources> 
    <datasource jndi-name="java:jboss/datasources/MysqlDS" pool-name="MysqlDS" enabled="true" use-java-context="true"> 
     <connection-url>jdbc:mysql://localhost:3306/DATABASE_NAME</connection-url> 
     <driver>com.mysql</driver> 
     <security> 
      <user-name>USERNAME</user-name> 
      <password>PASSWORD</password> 
     </security> 
    </datasource> 
    <drivers> 
     <driver name="com.mysql" module="com.mysql"> 
      <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
     </driver> 
    </drivers> 
</datasources> 

DATABASE_NAME, USERNAME और पासवर्ड को अपरिवर्तनीय रूप से बदलें।

<drivers> तत्व के अंदर निम्नलिखित जोड़ें:।

<driver name="com.mysql" module="com.mysql"> 
    <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
</driver> 

अब, <JBOSS_HOME>/modules के पास जाकर पथ com/mysql/main वहाँ ड्राइवर का जार डाल बनाने के (जैसे mysql-कनेक्टर-जावा-5.1.18-bin.jar) और निम्नलिखित सामग्री के साथ फ़ाइल module.xml बनाएँ:

<module xmlns="urn:jboss:module:1.1" name="com.mysql"> 

    <resources> 
     <resource-root path="mysql-connector-java-5.1.18-bin.jar"/> 
     <!-- Insert resources here --> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.transaction.api"/> 
     <module name="javax.servlet.api" optional="true"/> 
    </dependencies> 
</module> 

कि चाल करना चाहिए।

+0

जैसा आपने सुझाव दिया था मैंने किया था लेकिन मुझे त्रुटि मिलती है ... http://pastebin.com/5rRPnSKu और सभी एक्सएमएल सिंकैक्टिक रूप से सही हैं क्योंकि यह क्रोम इत्यादि में खुलता है। standalone.xml http://pastebin.com/S8esfvxC – david99world

+0

आपको तत्व के अंदर टैग डालना चाहिए। मैंने अपना जवाब – Efthymis

+0

संपादित किया है और इसे अभी भी वही त्रुटि साथी मिल गया है। जेबीएएस 014775: नई गायब/असंतुष्ट निर्भरता: सेवा jboss.jdbc-driver.com_mysql (गायब) आश्रित: [सेवा jboss.data-source.java:jboss/datasources/MysqlDS] – david99world

0

जेबॉस 7 में, डेटा स्रोत बनाने और जेडीबीसी ड्राइवर स्थापित करने के लिए कई कॉन्फ़िगरेशन विवरण बदल गए। इस माइग्रेशन guide पर "डेटासोर्स को परिभाषित करें" और "जेडीबीसी ड्राइवर स्थापित करें" अनुभागों पर एक नज़र डालें।

+0

आह, मेरे पास jboss_home में एक/सर्वर निर्देशिका नहीं है, मेरे पास एपक्लिएंट, बिन, बंडल, दस्तावेज़, डोमेन, मॉड्यूल, स्टैंडअलोन, स्वागत-सामग्री है – david99world

+0

मैंने अपना जवाब अपडेट किया। मैं भूल गया था कि जेबॉस 7 में निर्देशिका संरचना काफी बदल गई है। –

+0

आह, जहां तक ​​मैं कह सकता हूं, सबकुछ सही होना चाहिए, जार आवश्यकतानुसार/वेबकंटेंट/मेटा-इंफ/सेवाओं में है, मैनिफेस्ट और स्टैंडअलोन एक्सएमएल फाइलें भी अद्यतित हैं। – david99world

3

मैं आप नीचे दिए गए उदाहरण की तरह चालक-मॉड्यूल के साथ standalone.xml में डेटा स्रोत से संबद्ध करना होगा लगता है (here से लिया:

 <datasources> 
      <datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS"> 
       <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> 
       <driver>h2</driver> 
       <pool></pool> 
       <security> 
        <user-name>sa</user-name> 
        <password>sa</password> 
       </security> 
       <validation></validation> 
       <timeout></timeout> 
       <statement></statement> 
      </datasource> 
      <drivers> 
       <driver name="h2" module="com.h2database.h2"> 
        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
       </driver> 
       <driver name="mysql" module="com.mysql.jdbc"> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> </driver> 
      </drivers> 
     </datasources> 

datasources में चालक-तत्व इस के साथ साथ में एक ड्राइवर परिभाषा को संदर्भित ड्राइवर-तत्व, जो आपके द्वारा परिभाषित मॉड्यूल का संदर्भ देता है और कक्षाएं। इस प्रकार मैं इसका उपयोग करता हूं, और यह मेरे लिए जेबॉस 7.1 पर काम करता है।

+0

हाय, स्टैंडअलोन.एक्सएमएल में यह सेट रखने के लिए मेरा कोड बदल गया है (जैसा कि आप ऊपर से देख सकते हैं) लेकिन दुर्भाग्यवश यह अभी भी एक ही समस्या है। – david99world

+1

@ david99world आपके मॉड्यूल.एक्सएमएल के अनुसार, आपके मॉड्यूल का नाम com.mysql है, com.mysql.jdbc नहीं जो आप standalone.xml – ftr

+0

में संदर्भित करते हैं। <मॉड्यूल ... name = "com.mysql.jdbc"> ताकि यह

0

ड्राइवर का संस्करण है। एक नए संस्करण के लिए बदलें। विश्वास करो, केवल यह है !!! मैंने ड्राइवर mysql-connector-java-5.0.4-bin.jar को mysql-connector-java-5.1.25-bin.jar में बदल दिया, तो समस्या हल हो गई।