- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个项目,我必须在其中创建一个网络应用程序。该网络应用程序在属于我们大学的服务器上通过 Jetty 运行。
我有来自该服务器的备份,该备份可以在该服务器上运行。但我想在 eclipse 中使用 jetty maven 插件来处理它。现在该项目无法在我的 IDE 中运行。
我收到的唯一消息是:
Firefox 可以在 ws://localhost:8080/toUpper/aufbauen 下运行服务器。 game.js:837:13
这意味着:Firefox 无法与服务器 ws://localhost:8080/toUpper/建立连接
特定行(第 837 行)说:webSocket = new WebSocket("ws://localhost:8080/toUpper/");
有两个类属于此调用。
@WebServlet(urlPatterns = "/toUpper")
public class ToUpperWebSocketServlet extends WebSocketServlet {
/**
*
*/
private static final long serialVersionUID = 9106843498328099741L;
@Override
public void configure(WebSocketServletFactory factory) {
factory.register(ToUpperWebSocket.class);
}
}
还有这个
@WebSocket
public class ToUpperWebSocket {
public static ArrayList<String> allgames = new ArrayList<String>();
public static ArrayList<Session> clientstogame = new ArrayList<Session>();
public static ArrayList<Integer> allUniqueGames = new ArrayList<Integer>();
public static ArrayList<Session> allUniqueGamesSessions = new ArrayList<Session>();
public static volatile ArrayList<Long> allUniqueGamesDates = new ArrayList<Long>();
public static int allUniqueGamesCounter = 0;
public static int counter;
public static boolean checkEnabled = false;
@OnWebSocketMessage
public void onText(Session session, String message) throws IOException {
System.out.println("Message received:" + message);
if (session.isOpen()) {
String response = message.toUpperCase();
if (response.contains("GENERATE SPECTATOR ID")) {
if (!checkEnabled) {
checkEnabled = true;
Thread t1 = new Thread(new AvailableChecker());
t1.start();
}
allUniqueGamesCounter++;
allUniqueGames.add(allUniqueGamesCounter);
allUniqueGamesDates.add(System.currentTimeMillis());
allUniqueGamesSessions.add(session);
session.getRemote().sendString("NEW SPECTATOR ID" + allUniqueGamesCounter);
}
if (response.contains("NEW SPECTATOR ")) {
response = response.replace("NEW SPECTATOR ", "");
int responseInt = Integer.parseInt(response);
if (allUniqueGames.contains(responseInt)) {
for (int j = 0; j < allUniqueGames.size(); j++) {
String stringValue = allUniqueGames.get(j) + "";
if (response.contains(stringValue)) {
allgames.add(response);
clientstogame.add(session);
session.getRemote().sendString("SPIEL GUCKEN MIT ID: " + response);
}
}
} else {
session.getRemote().sendString("SPIEL NICHT VORHANDEN MIT ID: " + response);
}
}
if (response.contains("POINTS") | response.contains("STATUS") | response.contains("GAME")) {
for (int i = 0; i < allUniqueGames.size(); i++) {
if (response.contains(allUniqueGames.get(i) + "")) {
allUniqueGamesDates.set(i, System.currentTimeMillis());
}
}
for (int i = 0; i < allgames.size(); i++) {
if (response.contains(allgames.get(i))) {
try {
session.getRemote().sendString(response);
clientstogame.get(i).getRemote().sendString(response);
// clientstogame.get(i).getRemote().sendString("DEBUG
// ANZAHL SPECTATOR INSGESAMT: "+allgames.size());
} catch (Exception e) {
allgames.remove(i);
clientstogame.remove(i);
}
}
}
session.getRemote().sendString("ES WILL JEMAND SPIEL ANBIETEN MIT ID: " + response);
}
}
}
@OnWebSocketConnect
public void onConnect(Session session) throws IOException {
System.out.println(session.getRemoteAddress().getHostString() + " connected!");
}
@OnWebSocketClose
public void onClose(Session session, int status, String reason) {
System.out.println(session.getRemoteAddress().getHostString() + " closed!");
}
public class AvailableChecker implements Runnable {
public void run() {
while (true) {
for (int i = 0; i < allUniqueGamesDates.size(); i++) {
long millisOfHost = allUniqueGamesDates.get(i);
long currentMillis = System.currentTimeMillis();
if (currentMillis - millisOfHost > 10000) {
int idOfClosedGame = allUniqueGames.get(i);
for (int j = 0; j < allgames.size(); j++) {
if (allgames.contains(idOfClosedGame + "")) {
try {
clientstogame.get(j).getRemote().sendString("SPIEL WURDE GESCHLOSSEN");
clientstogame.remove(j);
allgames.remove(j);
} catch (Exception e) {
}
}
}
}
}
try {
Thread.sleep(1000);
} catch (Exception e) {
}
}
}
}
}
整个客户端的东西都可以工作。所有 html、css 和 Javascript 文件,除了这一行。当我使用 Maven 运行项目时,Eclipse 控制台中也没有错误消息。
仅当我在本地主机上运行项目时才会出现此错误。在服务器上它可以工作。为了使其在 localhost 上工作,我只需将 URI 从 ws://theserver.com:port/toUpper 更改为 ws://localhost:8080/toUpper但这显然没有帮助。
这里是我的 pom.xml 如果有帮助的话:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>OurGroup</groupId>
<artifactId>TheTitle</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>the Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<jetty.version>9.3.9.v20160517</jetty.version>
</properties>
<dependencies>
<!--Jetty dependencies start here -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
<!--Jetty dependencies end here -->
<!--Jetty Websocket server side dependencies start here -->
<!--Jetty JSR-356 Websocket server side dependency -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>javax-websocket-server-impl</artifactId>
<version>${jetty.version}</version>
</dependency>
<!--Jetty Websocket API server side dependency -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<!--Jetty Websocket server dependencies end here -->
<!--Jetty Websocket client side dependencies start here -->
<!--JSR-356 Websocket client side depencency -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>javax-websocket-client-impl</artifactId>
<version>${jetty.version}</version>
</dependency>
<!--Jetty Websocket API client side dependency -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-client</artifactId>
<version>${jetty.version}</version>
</dependency>
<!--Jetty Websocket client side dependencies end here -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<scanIntervalSeconds>5</scanIntervalSeconds>
</configuration>
</plugin>
</plugins>
<finalName>theName</finalName>
</build>
</project>
我希望得到一些帮助。问候,J.
编辑:该项目仍在服务器上。 .class 文件不是我编译的。它们是由其他人使用 javac 通过命令行编译的。当我在 localhost 上运行我的项目时,当我使用 URI ws://serveraddress.com:1234/toUpper 作为 websocket 时,它似乎可以工作。
最佳答案
我想这次是我自己得到的。
我用 url 模式注释了 Webservlet 注释,并将 servlet 映射写入 web.xml。在我将项目转换为 Maven 项目之前,web.xml 是空的并且不存在。不知何故,它以前可以使用这些注释,但我没有编译该版本。无论如何,现在应该可以工作了。
虽然有人对我说 .java 文件中带有 Url-Pattern 的 servlet 注释应该可以工作。但就我而言,我不明白为什么这不起作用。因此,我将使用 web.xml 并将 servlet 映射放入其中。
关于JavaScript WebSocket : Cant connect to localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37846363/
谁能解释一下 localhost:5000 之间的区别和其他本地主机。 谢谢你。 最佳答案 localhost:5000 正在访问端口 5000 上的 localhost。 例如,如果您从浏览器访问它
假设本地 Python 脚本正在运行网络服务器。 有没有办法设置别名,以便http://localwebapp/等于 http://localhost:1234/ ? 编辑:或至少 http://lo
我对网络开发完全陌生。所以我总是看到“localhost”之类的东西并问自己:那是什么? 我感觉知道什么是“主持人”了。执行某事的东西。所以我的 Mac 是其上运行的所有内容的主机。那么“localh
我正在学习 xmpp 编程,我使用 sudo apt-get install ejabberd 在我的 ubuntu 15.10 上安装了 ejabberd,然后我通过添加管理员用户 ejabberd
是否总是可以 ping localhost 并解析为 127.0.0.1? 我知道 Windows Vista、XP、Ubuntu 和 Debian 都这样做,但每个人都这样做吗? 最佳答案 任何正确
我们在同一台计算机上使用客户端/服务器 RMI 通信(因此所有 ip 都应该是本地主机)。 我们启动注册表(使用默认端口1099) registry = LocateRegistry.createRe
我已经在 windows/system32/drivers/etc/ 中验证了我的主机文件其中有一个 localhost 的条目,但它不会去任何地方。我必须在 URL 中有一个端口号:http://1
我的主机上有一个守护程序在某个端口(即 8008)上运行,我的代码通常通过联系 localhost:8008 与守护程序交互。 我现在已经将我的代码容器化了,但还没有将守护进程容器化。如何将容器上的
在 SMTP 中,HELO 命令之后应该是什么,它有什么作用? 我在我的应用程序中发送电子邮件,我想知道我是否应该使用 localhost、发件人地址的域名 (me@example.com)、应用程序
我遇到无法打开本地主机Web应用程序的问题,因为Microsoft Edge会将URL http://localhost:3000重定向到https://localhost:3000。因此,我得到了错
一直在尝试设置我想用于登录的 Facebook 应用程序,以允许我在 Mac 的本地主机上测试它。 Facebook 抛出错误“应用程序域:http://localhost 不是有效域。”当我尝试将站
我在 MacOS 10.15 上使用 minikube 1.4.0 版和 Kubernetes 1.16.0 版。 我正在开发一些依赖于外部服务的授权/认证代码。在对服务的 API 调用中,我需要提供
当我用谷歌搜索这个问题时,我注意到这是 nginx 的一个常见问题。但是我从来没有在我的机器上使用过 nginx。我使用 MAMP,偶尔使用 Python Bottle。 现在,无论我的 MAMP/P
我在本地运行 Squid,我想通过在 localhost:3000 上运行的 Ruby 服务器通过 Squid 进行访问。 如果我尝试访问 localhost:3000,我会收到以下消息: The f
我使用 VS 2012 默认模板创建了 MVC4 移动应用程序。使用 http://localhost/mvcapplication1/ 在桌面浏览器中运行良好但是当我尝试在 WP8 Emulator
如何将默认的 xampp localhost c:xampp/htdoc 更改为另一个文件夹,即 c:/alan?当我使用 IP 地址时,我应该能够在 C:/alan 中查看我的网站文件。 感谢您帮助
我正在使用带有centos版本6(Fedora)的Vmware。我正在使用hadoop 1.0.4版本。我的 http://localhost:50070 地址显示为“无法连接”,但是 http://
我正在运行带有 apache 2.4.38 和 Maria DB 10.1.38 + PHP 7.3.3 的 Windows Server 2016 有时,我可以看到(使用 netstat)从 127
尝试通过 SSH 连接到本地主机时的调试信息 ssh root@localhost -vvv 输出 OpenSSH_6.6.1、OpenSSL 1.0.1f 2014 年 1 月 6 日debug1:
我正在使用 Node 和 Laravel 编写一个应用程序。我正在运行小型 laravel 本地服务器,该服务器解析为 http://localhost:8000 。我还在 localhost:300
我是一名优秀的程序员,十分优秀!