通过Java代码启动Jetty的方式有以下几种:
【第一种】在java代码中通过标准的jetty.xml配置文件启动,示例代码如下:
EmbeddedViaXml.java
////////////////////////////////begin/////////////////////////////////
package jetty;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.xml.XmlConfiguration;
public class EmbeddedViaXml
{
public static void main(String[] args)
{
try
{
// The configuration files
List<URL> configs = new ArrayList<>();
configs.add(new File("jetty.xml").toURI().toURL());
configs.add(new File("jetty-plus.xml").toURI().toURL());
// The properties
Map<String, String> props = new HashMap<String, String>();
props.put("jetty.home",new File(System.getProperty("user.dir")).getCanonicalPath());
Server server = load(configs,props);
server.start();
server.join();
}
catch (Throwable t)
{
t.printStackTrace();
}
}
public static Server load(List<URL> xmlConfigUrls, Map<String, String> props) throws Exception
{
XmlConfiguration last = null;
// Hold list of configured objects
Object[] obj = new Object[xmlConfigUrls.size()];
// Configure everything
for (int i = 0; i < xmlConfigUrls.size(); i++)
{
URL configURL = xmlConfigUrls.get(i);
XmlConfiguration configuration = new XmlConfiguration(configURL);
if (last != null)
{
// Let configuration know about prior configured objects
configuration.getIdMap().putAll(last.getIdMap());
}
configuration.getProperties().putAll(props);
obj[i] = configuration.configure();
last = configuration;
}
// Find Server Instance.
Server foundServer = null;
int serverCount = 0;
for (int i = 0; i < xmlConfigUrls.size(); i++)
{
if (obj[i] instanceof Server)
{
if (obj[i].equals(foundServer))
{
// Identical server instance found
continue; // Skip
}
foundServer = (Server)obj[i];
serverCount++;
}
}
if (serverCount <= 0)
{
throw new IllegalStateException("Load failed to configure a " + Server.class.getName());
}
if (serverCount == 1)
{
return foundServer;
}
throw new IllegalStateException(String.format("Configured %d Servers, expected 1",serverCount));
}
}
////////////////////////////////end///////////////////////////////////
【第二种】在java代码中通过spring bean格式的jetty.xml配置文件启动,示例代码如下:
//////////////////////////////////begin///////////////////////
public static final String DEFAULT_CONFIG_URI_FOR_JETTY = "xbean:jetty.xml";
configURI4Jetty = new URI(DEFAULT_CONFIG_URI_FOR_JETTY);
if (configURI4Jetty != null) {
System.out.println("Loading jetty server from: "
+ configURI4Jetty);
ApplicationContext context = createApplicationContext(configURI4Jetty);
server = (Server) context.getBean("Server");
server.start();
server.join();
}
protected ApplicationContext createApplicationContext(URI config)
throws MalformedURLException, URISyntaxException {
String uri = config.getSchemeSpecificPart();
if (uri.lastIndexOf('?') != -1) {
IntrospectionSupport
.setProperties(this, URISupport.parseQuery(uri));
uri = uri.substring(0, uri.lastIndexOf('?'));
}
Resource resource = Utils.resourceFromString(uri);
try {
return new ResourceXmlApplicationContext(resource) {
@Override
protected void initBeanDefinitionReader(
XmlBeanDefinitionReader reader) {
reader.setValidating(isValidate());
}
};
} catch (FatalBeanException errorToLog) {
throw errorToLog;
}
}
public static Resource resourceFromString(String uri) throws MalformedURLException {
Resource resource;
File file = new File(uri);
if (file.exists()) {
resource = new FileSystemResource(uri);
} else if (ResourceUtils.isUrl(uri)) {
try {
resource = new UrlResource(ResourceUtils.getURL(uri));
} catch (FileNotFoundException e) {
MalformedURLException malformedURLException = new MalformedURLException(uri);
malformedURLException.initCause(e);
throw malformedURLException;
}
} else {
resource = new ClassPathResource(uri);
}
return resource;
}
//////////////////////////////////end/////////////////////////
分享到:
相关推荐
- 启动Server:调用`Server.start()`启动Jetty服务,`Server.stop()`关闭服务。 4. **示例代码** ```java Server server = new Server(8080); // 创建服务器实例,端口为8080 ServletContextHandler context = ...
启动jetty的start.jar,此文件所在目录下增加lib,etc,context文件夹,lib下增加jetty的主jar包和jetty的util包。在etc下增加jetty的两个配置文件jetty.xml和webdefault.xml。在context下增加test.xml
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者在Java应用程序中直接启动HTTP服务器和Servlet容器,而无需通过完整的Java EE应用服务器。本篇将详细讲解如何使用Jetty来指定一个端口,开通...
标题"main方法启动jetty"指的就是通过编写一个包含main方法的Java类,调用Jetty的相关API来启动服务器。这种方式使得开发者能够自定义启动参数,便于调试和自动化部署。 **启动Jetty的基本步骤:** 1. **导入依赖*...
shell脚本启动jetty嵌入式server,shell脚本启动jetty嵌入式server
- Jetty提供了一系列的工具和命令行工具,如`jetty-start.jar`,用于快速启动和配置Jetty服务器。 - `jetty-maven-plugin`可以集成到Maven项目中,便于开发和测试。 6. **示例代码** ```java Server server = ...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。在标题和描述中提到的是Jetty版本9.2.13,这是一个稳定且常用的版本,提供了完整的jar包,特别适用于启动和调试...
标签:eclipse、jetty、server、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
标签:eclipse、jetty、server、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
标签:eclipse、jetty、server、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...
当我们使用Maven构建Java Web项目时,结合Jetty服务器,可以实现项目的热部署功能,即在开发环境中修改代码后无需重新启动服务器,改动就能实时生效,极大地提高了开发效率。 在Maven项目中启用Jetty热部署,主要...
### Jetty启动器资源配置文件详解 #### 一、概述 Jetty是一款开源的Servlet容器,由Eclipse基金会维护。它支持最新的Java EE标准,并且具备轻量级、高性能等特点,适用于开发测试环境以及生产环境中的Web应用...
通常,你可以创建一个lib目录,将这些jar包放入其中,然后通过java -cp "lib/*" org.eclipse.jetty.server.Server命令启动服务器。当然,具体的命令可能根据你的项目配置有所不同。 另外,Jetty也支持通过maven或...
标签:jfinal、jetty、server、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...
标签:eclipse、jetty、server、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
标签:jfinal、jetty、server、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
标题“在项目中直接启动Jetty,发布自己”暗示了我们将在讨论如何在Java开发环境中使用Jetty服务器来运行和部署个人项目。Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器,广泛用于快速原型开发、测试以及...
"IntelliJ+Maven+Jetty+Jrebel"的组合正是为了解决这一问题,实现Web项目的Java代码更改后能够自动热部署。这个解决方案集成了几个关键工具,包括: 1. **IntelliJ IDEA**: 这是一款强大的Java集成开发环境(IDE)...
【标题】"jetty+TLS PSK的java代码实例"涉及了几个关键的IT知识点,主要集中在Jetty服务器、TLS(Transport Layer Security)协议以及预共享密钥(PSK,Pre-Shared Key)的安全机制上。以下是这些概念的详细解释: ...
1. 服务器配置:在 Eclipse EE 中,可以在 Server 视图中配置 Jetty 服务器的启动参数,如端口号、主机名、context root 等。 2. JVM 配置:在 Eclipse EE 中,可以在 JVM 视图中配置 JVM 的参数,如heap size、...