我有使用嵌入式Jetty实例的spring应用程序。
project
| src
| controller
| webapps
| jsp
| WEB-INF
| web.xml
| applicationContext.xml
| spring-servlet.xml
我的罐子有相同的树状结构,但我不断
d:\test>java -jar springtest.jar
2011-11-22 15:37:02.576:INFO::jetty-7.x.y-SNAPSHOT
2011-11-22 15:37:02.686:WARN::Failed startup of context o.e.j.w.WebAppContext{/,[file:/C:/Users/me/AppData/Local/Temp/jetty-0.0.0.0-8080-webapps-_-any-/webinf
/, jar:file:/d:/test/springtest.jar!/org/jcvi/webapps/]}
java.io.FileNotFoundException: d:\test\org\eclipse\jetty\webapp\webdefault.xml (The system cannot find
the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.eclipse.jetty.xml.XmlParser.parse(XmlParser.java:188)
at org.eclipse.jetty.xml.XmlParser.parse(XmlParser.java:204)
at org.eclipse.jetty.webapp.Descriptor.parse(Descriptor.java:60)
at org.eclipse.jetty.webapp.WebDescriptor.parse(WebDescriptor.java:140)
at org.eclipse.jetty.webapp.MetaData.setDefaults(MetaData.java:141)
at org.eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(WebXmlConfiguration.java:46)
at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:412)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89)
at org.eclipse.jetty.server.Server.doStart(Server.java:258)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.jcvi.ServerRunner.startServer(ServerRunner.java:83)
at org.jcvi.MainServer.main(MainServer.java:18)
2011-11-22 15:37:02.748:INFO::Started SelectChannelConnector@0.0.0.0:8080 STARTING
我有以下运行码头服务器实例的Java类
String webDir = this.getClass().getClassLoader().getResource("webapps").toExternalForm();
Server server = new Server(8080);
WebAppContext context = new WebAppContext();
context.setContextPath("/");
context.setResourceBase(webDir);
context.setParentLoaderPriority(true);
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { context, new DefaultHandler() });
server.setHandler(context);
server.start();
我的web.xml看起来像
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如果我在IDE中运行,此应用程序运行良好,但JAR失败。我该如何解决此问题,这样我才能拥有其中包含Web应用程序的单个jar文件?
我遇到了类似的问题,并通过以下主类实现解决了这个问题:
private static final int PORT = 8080;
private static final String WAR_LOCATION = "src/webapps"; //in your case I guess
private static final String CONTEXT_PATH = "/movence"; //change it if you want
public static void main(String[] args) throws Exception {
Server server = new Server();
WebAppContext context = new WebAppContext();
SocketConnector connector = new SocketConnector();
setupConnector(connector);
setupContext(server, context);
setupServer(server, context, connector);
startServer(server);
}
private static void startServer(Server server) throws Exception, InterruptedException {
server.start();
server.join();
}
private static void setupServer(Server server, WebAppContext context, SocketConnector connector) {
server.setConnectors(new Connector[] { connector });
server.addHandler(context);
}
private static void setupConnector(SocketConnector connector) {
connector.setPort(PORT);
}
private static void setupContext(Server server, WebAppContext context) {
context.setServer(server);
context.setContextPath(CONTEXT_PATH);
context.setWar(WAR_LOCATION);
}
我的建筑。Gradle:
我有一个基于Java11的应用程序,用Gradle 4.8.1构建,它使用Mapstruct 1.3.0.Final。我使用IntelliJ IDEA Ultimate 2019.2.3进行开发。 问题: 问题:如何使IntelliJ IDEA正确应用Mapstruct注释处理器? 我所尝试的:我在StackOveflow和GitHub上经历了类似的问题。不幸的是,他们没有帮上忙。他们要么使用旧版
是否有一种方法来运行一个Spring Boot应用程序(可运行的war),以便它监听两个端口--一个带有SSL,一个不带有SSL。我使用的是嵌入式Tomcat8。 SSL当前正在使用 任何建议都欢迎一如既往!
我的应用程序可以在eclipse或gradlew bootRun中运行。但是当我通过gradlew buildapp.jar构建一个“胖”jar文件,然后通过java-jarapp.jar启动应用程序时,我收到以下错误: 错误 - 无法获取密钥库的修改时间: kafka_truststore.jks java.nio.file.NoSuchFile异常: kafka_truststore.jks
我在嵌入式Jetty中部署rest Web服务(Jersey)。 我的服务器: 方法:
2015年7月30日,我们的Spring Boot应用程序运行良好,但当我们在2015年8月3日尝试运行它时,它失败了,出现了以下错误: 任何帮助都将不胜感激!