Javascript Jetty提供简单的html和JS代码

Javascript Jetty提供简单的html和JS代码,javascript,jetty,Javascript,Jetty,我在osx上使用自制软件安装了Jetty。Jetty位于常用文件夹中: /usr/local/Cellar/jetty/9.4.5.v20170502 但是,我们不会将其用于任何与Java相关的内容。这正是我们的要求,即我们将在生产中使用的web服务器是Websphere。我们的代码是纯html和一些JS。只有静态文件。web上的所有教程都需要修改XML文件并为java应用程序设置复杂的文件夹结构。我们不需要这些。我们只想把html/js文件放在某个特定的地方 有没有一个简单的方法可以做到这一

我在osx上使用自制软件安装了Jetty。Jetty位于常用文件夹中:

/usr/local/Cellar/jetty/9.4.5.v20170502
但是,我们不会将其用于任何与Java相关的内容。这正是我们的要求,即我们将在生产中使用的web服务器是Websphere。我们的代码是纯html和一些JS。只有静态文件。web上的所有教程都需要修改XML文件并为java应用程序设置复杂的文件夹结构。我们不需要这些。我们只想把html/js文件放在某个特定的地方


有没有一个简单的方法可以做到这一点?我们是否必须为这个简单的任务创建一个
start.jar
?我们如何通过Maven或其他方式创建WAR包?如果有任何简单的指示来设置这个开发环境,我将不胜感激。谢谢大家!

看来你可能有点想过头了
start.jar
只是启动服务器的jar文件。您可以轻松地在Jetty之外托管静态内容。我不确定您的具体要求,但为了举例说明,我将假设您有一个简单的webapp,其中包含一个页面和一些资源。您的实现可能如下所示

在Jetty 9.4.5.v20170502目录(也称为Jetty_Home(您可以了解)中,您可以找到以下目录:

bin演示库etc lib日志模块资源webapps

这些是真实的标准,不应该被修改(尽管如果需要的话,可以完全删除演示库)。您需要创建自己的Jetty_基本目录来承载您的内容,在本例中,我们称之为
stackoverflow
。值得注意的是,防波堤基地可以存在于任何地方,我只是将其保留在这里,以便于本示例

stackoverflow
目录中,您将找不到任何可以开始的内容,因此我们需要启用一些模块来填充我们的
Jetty\u库。现在,我不知道你打算用这个Web服务器做什么,所以我将把它保持在最小的范围内——足以承载内容。从该目录内运行:

> java -jar ../start.jar --create-startd
MKDIR : ${jetty.base}/start.d
INFO  : Base directory was modified
这将为我们所有的模块文件创建一个start.d目录,这使修改和配置变得轻而易举(尽管为了本例的缘故,所有内容都将保留默认设置)。现在,我们需要添加将在服务器上启用该功能的模块。通过运行以下命令,可以查看可用模块的完整列表:

> java -jar ../start.jar --list-modules
我不打算在此处粘贴整个列表,而是启用以下功能:

> java -jar ../start.jar --add-to-start=server,client,deploy,http,webapp,jsp
INFO  : webapp          initialized in ${jetty.base}/start.d/webapp.ini
INFO  : server          initialized in ${jetty.base}/start.d/server.ini
INFO  : security        transitively enabled
INFO  : apache-jsp      transitively enabled
INFO  : servlet         transitively enabled
INFO  : jsp             initialized in ${jetty.base}/start.d/jsp.ini
INFO  : jndi            transitively enabled
INFO  : client          initialized in ${jetty.base}/start.d/client.ini
INFO  : http            initialized in ${jetty.base}/start.d/http.ini
INFO  : annotations     transitively enabled
INFO  : plus            transitively enabled
INFO  : deploy          initialized in ${jetty.base}/start.d/deploy.ini
MKDIR : ${jetty.base}/webapps
INFO  : Base directory was modified
这将启用我定义的所有模块(服务器、客户端、部署、http、webapp、jsp)以及它们运行所需的任何依赖项和任何所需的文件夹(例如webapps)

现在,我创建了一个名为example的非常小的webapp。我已经将其移动到我们的
stackoverflow
Jetty_基地内的webapps目录中:

> tree
.
├── start.d
│   ├── client.ini
│   ├── deploy.ini
│   ├── http.ini
│   ├── jsp.ini
│   ├── server.ini
│   └── webapp.ini
└── webapps
    ├── example
    │   ├── images
    │   │   ├── jetty-header.jpg
    │   │   └── webtide_logo.jpg
    │   ├── index.html
    │   └── jetty.css
    └── example.xml
我为这个webapp创建了一个上下文xml文件,名为
example.xml
,它只提供静态内容,非常简单:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">

<Configure id="exampleApp" class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/example</Set>
  <Set name="war"><Property name="jetty.webapps" default="."/>/example</Set>
</Configure>

现在,您有了一台服务器并正在运行,内容也正在提供。我希望这有帮助。刚开始的时候,它看起来让人难以忍受,但一旦你把手弄脏了,情况就没那么糟了。我建议您在上阅读更多内容。

感谢您的耐心和详细回答。比官方文档更有帮助,官方文档假定您来自深层Java社区。现在,有没有一种方法可以创建一个
jetty_base
目录,而不需要这些
webapp
复杂性?Jetty可以运行这样的东西吗?还是它需要Java世界中常见的多余的迷宫式文件夹?我不想要那些“jsp.ini”等等,只是一个包含html、js、css的文件夹。非常感谢。我写了大量的官方文件,所以为了清晰起见,我会记下笔记进行审查。对于
webapps
文件夹和ini文件,它们是必需的。各种ini文件是服务器的配置机制,允许您自定义Jetty以满足您的需要。
webapps
文件夹是web应用程序的默认位置,不过您可以在上面激活的
stackoverflow/start.d/deploy.ini
文件中更改此位置。从技术上讲,您可以在不创建基础的情况下运行一切,并且只使用命令行中每个模块的所有默认值,但我不推荐。例如:
java-jar/path/to/start.jar--module=server、client、deploy、http、webapp、jsp jetty.deploy.monitoredir=/relative/path/to/webapp
。请注意,这样做只会为该服务器运行启用模块,并且不会创建任何配置文件。不建议用于生产。
java -jar ../start.jar
2017-06-08 10:36:32.300:INFO::main: Logging initialized @427ms to org.eclipse.jetty.util.log.StdErrLog
2017-06-08 10:36:32.477:INFO:oejs.Server:main: jetty-9.4.5.v20170502
2017-06-08 10:36:32.494:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///Users/example/installs/repository/jetty-distribution-9.4.5.v20170502/stackoverflow/webapps/] at interval 1
2017-06-08 10:36:32.633:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=26ms
2017-06-08 10:36:32.668:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2017-06-08 10:36:32.668:INFO:oejs.session:main: No SessionScavenger set, using defaults
2017-06-08 10:36:32.669:INFO:oejs.session:main: Scavenging every 600000ms
2017-06-08 10:36:32.692:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@6e06451e{/example,file:///Users/example/installs/repository/jetty-distribution-9.4.5.v20170502/stackoverflow/webapps/example/,AVAILABLE}{/example}
2017-06-08 10:36:32.713:INFO:oejs.AbstractConnector:main: Started ServerConnector@21a947fe{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2017-06-08 10:36:32.714:INFO:oejs.Server:main: Started @840ms