我创建了一个Spring Boot应用程序,然后我创建了一个战争。
在我的本地服务器上,该应用程序正常运行。
我将此应用程序添加到JBOSSEWS盒式磁带,方法是将其重命名为ROOT.war,使用git将其放入webapps目录并重新启动服务器。
但我总是找不到404。
tomcat日志是:
new-host-3:jbossews JARVIS$ rhc tail jbossews
Aug 30, 2014 3:27:25 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.54
Aug 30, 2014 3:27:25 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/openshift/540178a84382ec94b8000b75/app- root/runtime/dependencies/jbossews/webapps/ROOT.war
Aug 30, 2014 3:27:37 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive /var/lib/openshift/540178a84382ec94b8000b75/app-root/runtime/dependencies/jbossews/webapps/ROOT.war has finished in 11,864 ms
Aug 30, 2014 3:27:37 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-127.10.90.1-8080"]
Aug 30, 2014 3:27:37 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 12059 ms
答案 0 :(得分:2)
确保您的主要类应用扩展SpringBootServletInitializer
初始化servlet
通过将此转换为没有XML文件的WAR文件,您需要向servlet容器发出有关如何启动应用程序的不同信号。
import org.springframework.boot.context.web.SpringBootServletInitializer;
public class HelloWebXml extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
HelloWebXml
是一个纯Java类,它提供了创建web.xml
的替代方法。它扩展了SpringServletInitializer
类。此扩展通过覆盖方法提供了许多可配置选项。
答案 1 :(得分:0)
确保删除了pom.xml文件和src /目录,以便在执行git push时部署ROOT.war文件。您可以查看此kb文章以获取更多信息:https://help.openshift.com/hc/en-us/articles/202399740-How-to-deploy-pre-compiled-java-applications-WAR-and-EAR-files-onto-your-OpenShift-gear-using-the-java-cartridges
答案 2 :(得分:0)
我有同样的问题,并且能够通过将.openshift目录从原始git-repo复制到tar.gz的repo文件夹来解决它。所以之后我的目录结构看起来像这样:
myApp.tar.gz
- dependencies
- - jbossews
- - - - webapps
- - - - - ROOT.war
- repo
- - .openshift
- - - - markers
- - - - - java7
...
我认为我的问题是,tomcat尝试使用JDK 1.6部署应用程序,因为这似乎是回退,当marker目录中没有java7文件时...
答案 3 :(得分:0)
有理由: