2016-08-01 31 views
0

我需要你的幫助......它讓我瘋狂,我嘗試在websphere liberty 16.0.0.2服務器上部署一個非常簡單的應用程序。我的第一個大問題,其餘的API不能被稱爲。獲取錯誤:未找到任何根資源匹配請求路徑/admin-web-1.0-SNAPSHOT/api/account,相對路徑:/ api/account。JavaEE Websphere Liberty沒有根資源匹配請求&沒有有效的jdbcDriver

驗證碼: AppREST

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 
import java.util.HashSet; 
import java.util.Set; 

@ApplicationPath("api") 
    public class AppREST extends Application { 

    public Set<Class<?>> getClasses() { 
     Set<Class<?>> resources = new HashSet<Class<?>>(); 
     resources.add(AccountREST.class); 
     resources.add(GroupREST.class); 
     return resources; 
    } 
} 

AccountREST

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 
import javax.inject.Inject; 
import javax.ws.rs.*; 
import javax.ws.rs.core.MediaType; 
import java.util.List; 

@ManagedBean 
@RequestScoped 
@Path("/account") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public class AccountREST { 

@Inject 
private AccountFacade accountFacade; 

@POST 
public void createAccount(AccountRequest accountRequest){ 

} 

@GET 
public List<AccountRequest> getAccountRequests() { 
    return accountFacade.getAccountRequests(); 
} 

GroupREST幾乎是相同的,以AccountREST。 的web.xml文件是:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
<module-name>admin-web</module-name> 
<display-name>Eportal Registration Admin</display-name> 

</web-app> 

的POM文件包括此依賴關係:

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>eportal.registration.admin</groupId> 
     <artifactId>admin-models</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>eportal.registration.admin</groupId> 
     <artifactId>admin-usecases</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>eportal.registration.admin</groupId> 
     <artifactId>admin-models</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>eportal.registration.admin</groupId> 
     <artifactId>admin-repositories</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
</dependencies> 

我真的不能看到的錯誤,我幾乎過去將它複製從一個工作項目:(

現在。第二個問題的JDBC驅動器I下載了從行家中央MySQL的連接器的Java-6.0.3.jar並把它添加到server.xml:

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

<!-- Enable features --> 
<featureManager> 
    <feature>javaee-7.0</feature> 
</featureManager> 
<httpEndpoint id="defaultHttpEndpoint" 
       httpPort="9080" /> 

<applicationManager autoExpand="true"/> 

<dataSource id="RegistrationAdminDB" jndiName="jdbc/RegistrationAdminDB"> 
    <jdbcDriver libraryRef="MySQLLib"/> 
    <properties databaseName="REGISTRATIONADMINDB" serverName="localhost" portNumber="3306"/> 
</dataSource> 

<library id="MySQLLib"> 
    <fileset dir="/opt/ibm/wlp/clients/mysql-connector-java-6.0.3.jar"/> 
</library> 
</server> 

獲取錯誤

java.lang.RuntimeException: java.sql.SQLNonTransientException: DSRA4000E: A valid JDBC driver implementation class was not found for the jdbcDriver dataSource[RegistrationAdminDB]/jdbcDriver[default-0] using the library MySQLLib. [] 
at com.ibm.ws.resource.internal.ResourceFactoryTrackerData$1.getService(ResourceFactoryTrackerData.java:113) 

在啓動時。

嗯,我無法找到的錯誤,但不幸的沒有什麼工作:( 感謝您的幫助!

回答

1

爲了您的第一個問題,如果複製war文件到文件夾的dropins不自由的成功部署應用程序將通常給如果部署成功,則您的應用程序已啓動的URL /端口和上下文根。

隨着第二個問題,你有沒有嘗試遵循這裏的步驟? Configuring MySQL Driver in Liberty

  1. MySQL JDBC驅動程序的JAR文件添加到$ LIBERTY_HOME/WLP的/ usr /共享/資源/ MySQL的。如果該目錄不存在,請創建它。

  2. 配置在$ LIBERTY_HOME在/ usr /服務器/ worklightServer/server.xml文件中的數據源(worklightServer可以在您的服務器的名稱,這條道路被替換)如下:

<library id="MySQLLib"> <fileset dir="${shared.resource.dir}/mysql" includes="*.jar"/> </library>

+0

嘿,謝謝,經驗教訓 - 12小時後不調試配置工作xD我將我的應用程序部署到模板文件夾中 - 代碼完全沒問題,只是沒有更新。最新的mysql連接器6.x.x似乎沒有工作 - 更改我的配置和降級連接器後,它的工作。 Ty –

+0

哈哈,我們都一直在那裏;)很高興它的工作 – Pete

0

在你的server.xml你有<fileset dir="..."/>指向一個文件,而不是一個目錄。

嘗試您<library>配置如下:?

<library id="MySQLLib"> 
    <fileset dir="/opt/ibm/wlp/clients"/> 
</library> 
相關問題