宁静的方法不起作用

时间:2014-06-01 09:55:00

标签: java rest openshift

我创建了一个openshift应用程序。当我在我的本地服务器上运行它时(它对该方法的调用给出了响应),但是在openshift服务器上它无法找到我的resteasy web服务的方法。我收到一个无法加载资源:服务器响应状态为404(未找到)。 这是我的web xml:

<context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>true</param-value>
</context-param>

<!-- this need same with resteasy servlet url-pattern -->
<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/rest</param-value>
</context-param>

<listener>
    <listener-class>
        org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
    </listener-class>
</listener>

<servlet>
    <servlet-name>resteasy-servlet</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

这是我的网络服务:

 @Stateless // without this i get a 405
 @Path("/issue")
 @Produces("application/json")
 @Consumes("application/json")
 public class IssueRestService {

 private static final Logger logger =  LoggerFactory.getLogger(IssueRestService.class);


private IssueBeanLocal issueLocalBean;


@POST
@Path("/loadProjects")
public List<Object[]> loadProjects(Map<String, Object> params){
    String table = params.get("table").toString();
    try{
        List<Object[]> response = issueLocalBean.loadDDL(table);
        return response;
    } catch(Exception e) {
        logger.error("error in getting the DDL data. Error message :  " + e.getMessage());
        return null;

    }

}

}

我在ajax调用中使用的网址是:&#34; / {projectname} / rest / issue / loadProjects&#34;

我对这一切都很陌生,而且我没有多少编程经验,所以我希望这不是一个愚蠢的问题或转发。

1 个答案:

答案 0 :(得分:0)

您在OpenShift上的网址将是http://app-domain.rhcloud.com/rest/issue/loadProjects,而在您的本地开发环境中,它们使用项目名称运行,例如http:// {localhost}:8080 / {projectname} / rest / issue / loadProjects。