2014-03-30 150 views
5

这是我第一次尝试在我的Wildfly服务器中设置数据源。我试图遵循我在Google上找到的一些教程,但仍然无效。使用DataSource配置蜻蜓

我正在使用Web服务,但在部署我的.war文件时,我不断收到一些错误。

这里是最近的记录,当应用程序部署:

22:16:33,049 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment IslamicPostsWS.war (runtime-name: IslamicPostsWS.war) in 7ms 
22:16:33,184 INFO [org.jboss.as.server] (XNIO-1 task-2) JBAS018558: Undeployed "IslamicPostsWS.war" (runtime-name: "IslamicPostsWS.war") 
22:16:33,186 INFO [org.jboss.as.controller] (XNIO-1 task-2) JBAS014774: Service status report 
JBAS014777: Services which failed to start:  service jboss.deployment.unit."IslamicPostsWS.war".POST_MODULE 

22:16:35,518 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015877: Stopped deployment IslamicPostsWS (runtime-name: IslamicPostsWS) in 7ms 
22:16:35,660 INFO [org.jboss.as.server] (XNIO-1 task-6) JBAS018558: Undeployed "IslamicPostsWS" (runtime-name: "IslamicPostsWS") 
22:16:38,358 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) JBAS015018: Deployment IslamicPostsWS was previously deployed by this scanner but has been removed from the server deployment list by another management tool. Marker file C:\Users\Ilhami\workspace-services\.metadata\.plugins\org.jboss.ide.eclipse.as.core\WildFly_8.0_Runtime_Server1396040937545\deploy\IslamicPostsWS.undeployed is being added to record this fact. 
22:17:00,406 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of "IslamicPostsWS.war" (runtime-name: "IslamicPostsWS.war") 
22:17:00,540 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "IslamicPostsWS.war")]) - failure description: { 
    "JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.IslamicPostsWS.IslamicPostsWS.DefaultDataSource is missing [jboss.naming.context.java.jboss.datasources.ExampleDS]"], 
    "JBAS014879: One or more services were unable to start due to one or more indirect dependencies not being available." => { 
     "Services that were unable to start:" => [ 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"com.sun.faces.config.ConfigureListener\".START", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"javax.faces.webapp.FacetTag\".START", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV\".START", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"javax.servlet.jsp.jstl.tlv.ScriptFreeTLV\".START", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\".START", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\".START", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".deploymentCompleteService", 
      "jboss.deployment.unit.\"IslamicPostsWS.war\".jndiDependencyService", 
      "jboss.naming.context.java.module.IslamicPostsWS.IslamicPostsWS.env.jdbc.TestDB", 
      "jboss.undertow.deployment.default-server.default-host./IslamicPostsWS", 
      "jboss.undertow.deployment.default-server.default-host./IslamicPostsWS.UndertowDeploymentInfoService" 
     ], 
     "Services that may be the cause:" => [ 
      "jboss.jdbc-driver.com_mysql_jdbc_Driver", 
      "jboss.naming.context.java.jboss.datasources.ExampleDS" 
     ] 
    } 
} 
22:17:00,683 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "IslamicPostsWS.war" (runtime-name : "IslamicPostsWS.war") 
22:17:00,683 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report 
JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.naming.context.java.jboss.datasources.ExampleDS (missing) dependents: [service jboss.naming.context.java.module.IslamicPostsWS.IslamicPostsWS.DefaultDataSource] 

的persistence.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="JPADB"> 
     <jta-data-source>java:jboss/datasources/DBTest</jta-data-source> 
     <properties> 
      <property name="showSql" value="true"/> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

只要告诉我,如果你需要更多的文件。

回答

6

你可以发布你的数据源定义吗?

我认为这将是最好的测试数据源部署'独立'。我的意思是与实际应用程序部署分离,只是为了测试您的数据源是否工作。 你可以测试这个f.i.使用Web控制台(localhost:9990/console)。

它也看起来像野蝇的预配置示例DS有问题。你删除了这个DS吗?在standalone.xml中,还有一个关于ExampleDS的参考可能会被破坏。

+0

重新安装Wild and,并再次遇到问题,但修复它们。我必须创建一个module.xml并将驱动程序.jar放在同一个文件夹中。这需要一些时间,但现在起作用。 – Ilhami

+0

有三种方式使用它,你可以简单地创建数据源到wildfly 1.使用管理控制台 2.手动添加到standalone.xml 3.创建数据源文件,该文件是xml文件 参考,此链接查看详细信息:HTTP:/ /pvrworld-wildfly.blogspot.in/ – PVR

1

假设你使用的是MySQL数据库,您可以通过以下方式创建DS:

(1)从这里下载MySQL驱动程序: http://dev.mysql.com/downloads/connector/j/

(2)MySQL驱动程序复制到: WILDFLY_HOME /模块/系统/层/基层/ COM/MySQL的/主

(3)从在JBoss(或Wildfly)控制台,运行下面的命令:

/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql, driver-module-name=com.mysql, driver-class-name=com.mysql.jdbc.Driver) 

(4)然后,再次从JBoss(或Wildfly)控制台运行命令:

/subsystem=datasources/data-source=YourDS:add(driver-name=mysql, user-name=USERNAME, password=PASSWORD, connection-url=jdbc:mysql://localhost:3306/YOURDATABASE, min-pool-size=5, max-pool-size=15, jndi-name=java:jboss/datasources/YourDS, enabled=true, validate-on-match=true, valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker, exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter) 

瞧。现在你有一个JNDI路径的数据源: 的Java:JBoss的/数据源/ YourDS

1

服务的JBoss。 naming.context.java.jboss.datasourservice jboss.naming.context.java.jboss.datasources.ExampleDS(失踪)的家属:...

上wildfly-8.1.0.Final。

恕我直言

standalone/configuration/standalone-full.xml它有

<default-bindings ... datasource="java:jboss/datasources/ExampleDS" ...

<datasource jndi-name="java:/datasources/ExampleDS"...

JNDI名称不匹配!

我用jndi-name =“java:jboss/datasources/ExampleDS”创建了ExampleDS2。这解决了我的问题。

13

进入你的wildfly控制台(如localhost:9990)并编辑Configuration-> Container-> EE-> Default Bindings部分。将默认数据源设置为某个有效数据源的JNDI名称。

我删除了那里的默认值,并将它指向我的主数据源,因为服务器仅用于运行一个应用程序。

+0

这也解决了我的问题。我认为这肯定是一个错误?错误消息不具体描述。 – ThePerson

+0

这解决了它!谢谢 –

9

您可能在standalone.xml xmlns“urn:jboss:domain:datasources:2.0”部分缺少ds声明“java:jboss/datasources/ExampleDS”,只是它会起作用(这里是来自默认配置):

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

或者,你也可以通过添加UI由其他响应提及。