feat: support weblogic websocket and weblogic 15.1.1.0

This commit is contained in:
ReaJason
2026-08-03 23:54:06 +08:00
parent da046ae5dc
commit 2ec3218e72
11 changed files with 392 additions and 4 deletions
@@ -0,0 +1,42 @@
import jakarta.websocket.*;
import jakarta.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.logging.Logger;
@ServerEndpoint("/ws/demo")
public class EmptyWebSocketEndpoint {
private static final Logger logger = Logger.getLogger(EmptyWebSocketEndpoint.class.getName());
@OnOpen
public void onOpen(Session session) {
logger.info("New connection established: " + session.getId());
try {
// 向客户端发送欢迎消息
session.getBasicRemote().sendText("Connected successfully! Session ID: " + session.getId());
} catch (IOException e) {
e.printStackTrace();
}
}
@OnMessage
public void onMessage(String message, Session session) {
logger.info("Received message from " + session.getId() + ": " + message);
try {
session.getBasicRemote().sendText("Server Echo: " + message);
} catch (IOException e) {
e.printStackTrace();
}
}
@OnClose
public void onClose(Session session, CloseReason closeReason) {
logger.info("Session closed: " + session.getId() + ", Reason: " + closeReason.getReasonPhrase());
}
@OnError
public void onError(Session session, Throwable throwable) {
logger.severe("Error on session " + (session != null ? session.getId() : "null") + ": " + throwable.getMessage());
}
}
@@ -28,7 +28,19 @@ public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Part file = request.getPart("file");
String fileName = getFileName(file);
String uploadPath = getServletContext().getRealPath(UPLOAD_DIRECTORY) + File.separator + fileName;
String uploadFolder = getServletContext().getRealPath(UPLOAD_DIRECTORY);
if (uploadFolder == null) {
// weblogic
File tempDir = (File) getServletContext().getAttribute("jakarta.servlet.context.tempdir");
if (tempDir == null) {
tempDir = (File) getServletContext().getAttribute("javax.servlet.context.tempdir");
}
uploadFolder = tempDir.getParent() + File.separator + "war";
}
if (!uploadFolder.endsWith(File.separator)) {
uploadFolder += File.separator;
}
String uploadPath = uploadFolder + fileName;
InputStream inputStream = file.getInputStream();
File uploadFile = new File(uploadPath);
IOUtils.copy(inputStream, Files.newOutputStream(uploadFile.toPath()));