我创建了一个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;
我对这一切都很陌生,而且我没有多少编程经验,所以我希望这不是一个愚蠢的问题或转发。
答案 0 :(得分:0)
您在OpenShift上的网址将是http://app-domain.rhcloud.com/rest/issue/loadProjects,而在您的本地开发环境中,它们使用项目名称运行,例如http:// {localhost}:8080 / {projectname} / rest / issue / loadProjects。