我正在开发一个具有网络组件的iPhone应用程序.我正在使用Java开发应用程序(实际上是Google App Engine),在端口8080上运行.当我在iPhone模拟器中测试我的应用程序时,它可以工作.
但现在我正在尝试在设备上进行测试,而我无法点击我的Jetty实例.我当然可以通过iPhone访问我的Mac,因为我可以点击http://10.0.1.7/~brianpapa/并在启用网络共享时查看我的主文件夹.但是当我尝试点击http://10.0.1.7:8080/时,它说它无法连接到服务器.
有趣的是,如果我尝试从我的mac 命中http://10.0.1.7:8080/,它也不起作用 - 我必须使用localhost作为主机名,然后就可以了.有没有人曾经遇到过这种情况,并知道如何解决这个问题?
我有一个在Jetty中运行的应用程序.在它面前,我有一个负载平衡器.要求是由负载均衡器完成SSL解密,而Web容器仅执行SSL客户端身份验证.
理论上说,负载均衡器在解密内容方面非常有效,并且可以做到这一点并将其简单地传递给Web容器.
知道如何实现这一目标吗?
每当我尝试在特定机器上部署 Jetty(与其他机器一起工作)时都会遇到问题,该机器是非英语的 Windows 机器。
[2013-02-15 04:14:05.894] [ERROR] Thread-39
System.err
java.lang.IllegalStateException:无法在 C:\Windows\system32\config\systemprofile\AppData\Local\Temp\ 中创建 tmp 目录上下文 oejwWebAppContext{/spdy,null},C:\Program Files\server\work\tmp\my-app\webapps\spdy.war[2013-02-15 04:14:05.894] [ERROR] Thread-39
System.err
java.io.IOException: Žw'肳‚ꂽƒpƒX‚ªŒ©‚‚©‚è‚Ü‚¹‚ ñB
我试图查看这是否是与管理员权限相关的问题,但事实并非如此,我正在以管理员权限启动该进程。
任何建议都非常感谢。
谢谢!
我正在使用Jetty Server(7.6.8),我希望能够从JVM中的JMX中查看Jetty服务器中可用的哪些http连接器.所以我能够确定http端口号是什么,以及https等.
我查看了Jetty服务器在使用JMX启动时公开的所有JMX MBean:
java -Dcom.sun.management.jmxremote -jar start.jar etc/jetty-jmx.xml
Run Code Online (Sandbox Code Playgroud)
但我找不到有关http端口的任何信息.我知道8080正在使用,因为它是默认端口以及正在记录的内容
2013-03-04 11:55:54.260:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
Run Code Online (Sandbox Code Playgroud)
如果我查看服务器MBean:org.eclipse.jetty.server:type = server,id = 0然后我可以将连接器视为JMX属性,但其值始终为null.
任何人都知道如何使用Jetty从JMX获取连接器详细信息?
我也看看Jetty 8.1.9.v20130131,我也找不到这些信息.
如果我试图使用带有HTTPS的JettyHelper在嵌入式Jetty中运行Restlet.Restlet是从Jetty开始的,如果我运行jar并在端口443上侦听.但是在第一个Request上我从Jetty获得了一个Bind Exception但是一切都运行良好:
INFO | jvm 1 | 2013/08/05 07:35:43 | 2013-08-05 07:35:43.720:INFO:oejs.Server:jetty-7.6.5.v20120716
INFO | jvm 1 | 2013/08/05 07:35:43 | 2013-08-05 07:35:43.813:INFO:oejs.AbstractConnector:Started SslSelectChannelConnector@0.0.0.0:443
INFO | jvm 1 | 2013/08/05 07:35:43 | 2013-08-05 07:35:43.814:INFO:oejs.Server:jetty-7.6.5.v20120716
INFO | jvm 1 | 2013/08/05 07:35:43 | 2013-08-05 07:35:43.820:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8182
INFO | jvm 1 | 2013/08/05 07:36:35 | 2013-08-05 07:36:35.730:INFO:oejs.Server:jetty-7.6.5.v20120716
INFO | jvm 1 | 2013/08/05 07:36:35 | 2013-08-05 07:36:35.733:WARN:oejuc.AbstractLifeCycle:FAILED SslSelectChannelConnector@0.0.0.0:443: java.net.BindException: Die Adresse wird bereits verwendet
INFO | jvm 1 | 2013/08/05 07:36:35 | java.net.BindException: …
Run Code Online (Sandbox Code Playgroud) 我有很多生产服务器,每台服务器都运行 RMI 应用程序,还有 4 个 Java Web 应用程序,例如:
Server A:
RMI app by JNLP file;
webapp_1 (connected by RMI with local RMI app);
webapp_2 (connected by RMI with local RMI app);
webapp_3 (connected by RMI with local RMI app);
webapp_4 (connected by RMI with local RMI app);
Server B:
...the same..OK
Run Code Online (Sandbox Code Playgroud)
所有用户都在默认上下文(例如“主区域”)中直接通过 8080 端口(直接到 Jetty)访问此服务器,在其中可以通过一些 html 链接访问所有应用程序(RMI 应用程序、webapp_1、webapp_2 等)。
当某些用户访问“/”页面时,例如:
www.foo.com:8080/
main-area/
webapp_1/
webapp_2/
webapp_3/
...
Run Code Online (Sandbox Code Playgroud)
Jetty 返回包含所有应用程序的列表(就像 Apache 的目录列表)。
有什么方法可以阻止它,或者重定向到“主区域”上下文?
在执行任何请求之前(在 init 方法中),我需要在 init 方法中从服务器获取一些服务器属性到我的 servlet 。实际上,我需要获取有关此服务器连接器上所有工作的列表、所有工作中的 web 应用程序以及最重要的 - 端口号或连接器。所需的码头版本 - 最多 8 个版本,包括。
所以我需要类似的东西org.eclipse.jetty.server.Server
,但不是嵌入式,而是来自现有服务器,我的 servlet 正在运行。就使用此信息操作的 webapp 部署程序而言,此信息应该在码头上。但我找不到在哪里。
在Jetty中实现拒绝服务攻击保护的最佳方法是什么?所有类需要扩展或配置需要设置的内容.
我正在尝试在 Jetty 上构建一个 api 服务器。
我希望在 /apis/api1/endpoint、/apis/api2/endpoint、/apis/api3/endpoint 等路径上有多个 api
本质上我有一个 HandlerWrapper,它包含 ContextHandlerCollections 的 HandlerList,本质上只是做:
public void handle(...) {
if (uri.startsWith("/apis/")) {
log.info("This is an api request");
this.getHandlerList.handle(...)
} else {
super.handle()
}
}
private HandlerList getHandlerList() {
HandlerList handlerList = new HandlerList();
ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
ContextHandler api1 = new ContextHandler("/apis/api1/endpoint");
api1.setHandler(new Api1Handler());
contextHandlerCollection.addHandler(api1);
handlerList.addHandler(contextHandlerCollection);
return handlerList
}
Run Code Online (Sandbox Code Playgroud)
现在当我尝试这样做时:
curl localhost:port/apis/api1/endpoint
Run Code Online (Sandbox Code Playgroud)
我收到 404 not found,但我在日志中看到语句“这是一个 api 请求”。
有什么提示吗?
我基本上希望每个 api1、api2 等都有一个 ContextHandlerCollection。并且 ContextHandlerCollection 应该由一组特定于端点的处理程序组成以供选择。
我缺少什么?
干杯,