繁体   English   中英

-source 1.5 不支持 java ee websocket 聊天室 try-with-resources

[英]java ee websocket chatroom try-with-resources is not supported in -source 1.5

错误消息:-source 1.5 不支持 try-with-resources

完整的错误信息:

\App\workspace_eclipse\EmpressFinance\src\main\java\com\empress\jpmc\chat\chatroom.java:[58,5] 错误:-source 1.5 不支持 try-with-resources

代码:

private String buildJsonData(String username, String message) {

        JsonObject jsonobject = Json.createObjectBuilder().add("message",username+ ": "+message).build();
        StringWriter stringWritter = new StringWriter();
        try(JsonWriter jsonwritter = Json.createWriter(stringWritter)) 
        {
            jsonwritter.write(jsonobject);
        }

        return stringWritter.toString();
    }

java的完整代码:

package com.empress.jpmc.chat;

import java.io.IOException;
import java.io.StringWriter;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; 

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonWriter;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;


@ServerEndpoint("/chatroomServerEndpoint")
public class chatroom {
    static Set<Session> chatroomUser = Collections.synchronizedSet(new HashSet<Session>());

    @OnOpen
    public void handleOpen(Session userSession)
    {
        chatroomUser.add(userSession);
    }

    @OnClose
    public void handleClose(Session userSession)
    {
        chatroomUser.remove(userSession);
    }

    @OnMessage
    public void handleMessage(String message, Session userSession) throws IOException
    {
        String username = (String) userSession.getUserProperties().get("username");

        if (username==null)
        {
            userSession.getUserProperties().put("username", message);
            userSession.getBasicRemote().sendText(buildJsonData("System","You are connected as" + message ));
        } 
        else
        {
            Iterator<Session> iterator = chatroomUser.iterator();
            while (iterator.hasNext()) iterator.next().getBasicRemote().sendText(buildJsonData(username, message));
        }

    }

    private String buildJsonData(String username, String message) {

        JsonObject jsonobject = Json.createObjectBuilder().add("message",username+ ": "+message).build();
        StringWriter stringWritter = new StringWriter();
        try(JsonWriter jsonwritter = Json.createWriter(stringWritter)) 
        {
            jsonwritter.write(jsonobject);
        }

        return stringWritter.toString();
    }
}
 <properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>

将此代码段添加到您的 pom.xml 将解决此问题。

是的,vinoth10对! pom.xml必须包含以下内容:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>7</source>
                <target>7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM