当前位置: 首页 > 工具软件 > GlassFish > 使用案例 >

glassfish显示不了html文件,Glassfish websocket无法正常工作(示例代码)

史懿轩
2023-12-01

我尝试使用websocket。作为我使用Glassfish的服务器,工作正常,但我有websocket的问题。

当我在控制台中使用javascript运行html时出现错误404

veb.hml

xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0">

Simple web application

的build.gradle

repositories {

mavenCentral()

mavenLocal()

jcenter()

}

apply plugin: "java"

apply plugin: 'application'

apply plugin: 'war'

mainClassName = "websockets.WebSocketServer"

version = '1.0'

dependencies {

compile 'javax.inject:javax.inject:1'

compile 'com.google.inject:guice:4.0'

compile 'javax.websocket:javax.websocket-api:1.0'

compile 'org.glassfish.tyrus:tyrus-server:1.1'

compile 'org.glassfish.tyrus:tyrus-client:1.0'

compile 'org.glassfish.tyrus:tyrus-container-grizzly:1.0'

compile 'javax:javaee-api:7.0'

testCompile 'info.cukes:cucumber-java:1.2.4'

testCompile 'info.cukes:cucumber-junit:1.2.4'

testCompile 'junit:junit:4.11'

testCompile "org.mockito:mockito-core:2.0.86-beta"

}

sourceSets {

main.java.srcDir "src/java"

test.java.srcDir "src/test"

main.resources.srcDir 'src/resources'

main.resources.include '**/*.xml'

main.resources.include 'META-INF/services/**'

}

processResources.doLast {

copy {

from 'build/resources/main/META-INF/beans.xml'

into 'build/classes/main/META-INF/'

}

}

task fatJar(type: Jar) {

manifest {

attributes 'Implementation-Title': 'Gradle Jar File Example',

'Implementation-Version': version,

'Main-Class': 'websockets.WebSocketServer'

}

baseName = project.name + '-all'

from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } {

exclude "META-INF/*.SF"

exclude "META-INF/*.DSA"

}

with jar

}

war {

manifest {

attributes 'Main-Class': 'websockets.WebSocketServer'

}

}

在src / main / java / websockets中有I WebSocketServer.java

package websockets;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.ServerSocket;

import java.net.Socket;

import java.io.IOException;

import javax.websocket.OnClose;

import javax.websocket.OnMessage;

import javax.websocket.OnOpen;

import javax.websocket.Session;

import javax.websocket.OnOpen;

import javax.websocket.OnError;

import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/websocket")

public class WebSocketServer {

@OnMessage

public void onMessage(String message, Session session)

throws IOException, InterruptedException {

// Print the client message for testing purposes

System.out.println("Received: " + message);

// Send the first message to the client

session.getBasicRemote().sendText("This is the first server message");

// Send 3 messages to the client every 5 seconds

int sentMessages = 0;

while(sentMessages < 3){

Thread.sleep(5000);

session.getBasicRemote().

sendText("This is an intermediate server message. Count: "

+ sentMessages);

sentMessages++;

}

// Send a final message to the client

session.getBasicRemote().sendText("This is the last server message");

}

@OnOpen

public void onOpen () {

System.out.println("Client connected");

}

@OnClose

public void onClose () {

System.out.println("Connection closed");

}

@OnError

public void onError(Session aclientSession, Throwable aThrowable) {

System.out.println("Error : " + aclientSession); System.out.println("Error :" + aThrowable);

}

}

Gradle构建没有错误。当我在qazxsw poi(vagrant虚拟机)中运行应用程序时

抛出错误:

与'ws:// localhost:8080 / web / websocket'的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:404

在glassfish中,在Context Root:web中添加应用程序

怎么了 ?你能帮助我吗?请。谢谢 :)

 类似资料: