2016-08-01 33 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> 
相关问题