小编use*_*977的帖子

刷新期间的Apache Tomcat WSS WebSocket错误

刷新我们的网页时,我注意到以下Web套接字错误(https&wss)。但是,当我们使用常规的“ ws”(http)运行时,未注意到相同的问题。使用wss,套接字似乎可以正常关闭,并且在打开下一个套接字之前,将抛出此警告。

如果有人在这里指出问题,那就太好了。连接在正确的位置关闭。关闭套接字之前,对wss有什么特别的事情需要做吗?

cleaning up and closing socket connection with user: 7
session closed
03-Oct-2017 16:45:30.375 INFO [http-nio-8443-exec-1]                                               org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doClose Failed to     close the ServletOutputStream connection cleanly
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:51)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
at org.apache.tomcat.util.net.SecureNioChannel.flush(SecureNioChannel.java:140)
at org.apache.tomcat.util.net.SecureNioChannel.close(SecureNioChannel.java:399)
at org.apache.tomcat.util.net.SecureNioChannel.close(SecureNioChannel.java:413)
at org.apache.coyote.http11.upgrade.NioServletOutputStream.doClose(NioServletOutputStream.java:138)
at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.close(AbstractServletOutputStream.java:140)
at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doClose(WsRemoteEndpointImplServer.java:139)
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.close(WsRemoteEndpointImplBase.java:667)
at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:528)
at org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:348)
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:290)
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:131)
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:71)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:186)
at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvailable(AbstractServletInputStream.java:198)
at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:96)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:647)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) …
Run Code Online (Sandbox Code Playgroud)

java sockets tomcat websocket

8
推荐指数
0
解决办法
911
查看次数

带有websockets的多线程

这更像是一个设计问题.我有以下实现

多个客户端连接----->服务器------>对应的DB conns

客户端/服务器通信使用Web套接字完成.它目前是一个单线程应用程序.显然,这种设计不会扩展,因为服务器上的负载太高,并且响应客户端的响应时间太长.后端操作涉及处理大量数据.

我的问题:为每个Web套接字连接创建一个新线程是个好主意吗?这意味着500个客户端有500个线程(无论是多线程还是单线程,Web套接字的数量都是相同的).这样可以减轻服务器的负担,从而使生活更轻松.

要么

是否有更好的逻辑来实现可扩展性?其中一个可以根据作业的优点创建线程,并由主线程处理其余部分.这在某种程度上似乎将来会再次回到同样的问题.

这里的任何帮助将不胜感激.

java multithreading tomcat java-websocket

4
推荐指数
1
解决办法
7914
查看次数

spark-sql表或视图未找到错误

我正在尝试使用spark-sql和JDBC运行一个基本的java程序.我遇到了以下错误.不知道这里有什么问题.我读过的大部分材料都不讨论解决这个问题需要做些什么.

如果有人能指出我在Spark-sql(Spark-2.1.1)上阅读的一些好材料,那也很棒.我打算用spark来实现ETL,连接到MySQL和其他数据源.

线程"main"中的异常org.apache.spark.sql.AnalysisException:找不到表或视图:myschema.mytable; 第1行pos 21;

    String MYSQL_CONNECTION_URL = "jdbc:mysql://localhost:3306/myschema";
    String MYSQL_USERNAME = "root";
    String MYSQL_PWD = "root";

    Properties connectionProperties = new Properties();
    connectionProperties.put("user", MYSQL_USERNAME);
    connectionProperties.put("password", MYSQL_PWD);

    Dataset<Row> jdbcDF2 = spark.read()
              .jdbc(MYSQL_CONNECTION_URL, "myschema.mytable", connectionProperties);
    spark.sql("SELECT COUNT(*) FROM myschema.mytable").show();
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql spark-dataframe

4
推荐指数
1
解决办法
1万
查看次数

Java simpledateformat月返回零

这可能是重复的,但我无法弄清为什么当将MMM指定为MMM并与mm(数字)一起使用时,该月返回零。这里的任何帮助将不胜感激?

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Base64;
import java.util.Date;
import java.util.Locale;

 public class time1 {

 public static void main(String[] args) {

    DateFormat originalFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
    DateFormat targetFormat = new SimpleDateFormat("yyyy-mm-dd");
    Date date = null;
    try {
            date = originalFormat.parse("26-Aug-2011");
    } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    }
    String formattedDate = targetFormat.format(date);
    System.out.println("old date: " + date);
    System.out.println("new date: " + formattedDate);
 }
}
Run Code Online (Sandbox Code Playgroud)

输出为:

旧日期:IST 2011年8月26日星期五00:00:00
新日期:2011 -00- 26年

当格式更改为dd-mm-yyyy且日期为26-08-2011时,输出为

旧日期:IST 2011年1月26日星期三00:07:00 …

java simpledateformat java-date

0
推荐指数
1
解决办法
1125
查看次数