尝试通过我的Apache2服务器访问ws:// localhost:8080 /时收到错误500.该服务器运行OpenSuse Leap 42.1和Apache 2.4.16.
启用了这些Apache2模块:mod_proxy,mod_proxy_http,mod_proxy_wstunnel.
从本地网络调用请求时,一切正常.网址示例:http://<myhost-ip-address>/api/ws/<some-url>.它返回状态101和响应:Upgrade: websocket.没关系.
来自外部网络的同类请求失败.网址示例:ws://www.mysite.com/api/ws/<some-url>.它返回错误500.
Apache访问日志包含: GET /api/ws/<some-url> HTTP/1.1" 500 ...
Apache错误日志包含: [proxy:warn] AH01144: No protocol handler was valid for the URL /api/ws/<some-url>. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
我的httpd.conf:
<VirtualHost *:80>
ServerName mysite.com
ServerAlias mysite.com
# Redirection for ws protocol
ProxyPreserveHost On
ProxyVia full
ProxyRequests OffHere
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api/ws/(.*) [NC]
RewriteCond …Run Code Online (Sandbox Code Playgroud) 线程没有睡觉我有问题.
我不能把我的整个代码放在这里.所以,为了重现,这里是一个等待5秒的基本代码.
try {
int millisec = 5000;
System.out.println(new Date());
System.out.println("We wait " + millisec + " milliseconds");
Thread.sleep(millisec);
System.out.println(new Date());
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
输出:
星期四8月22日20:01:42 CEST 2013
我们等待5000毫秒
Thu Aug 22 20:01:47 CEST 2013
一切都好.
但是当我把这段代码放在一个线程中时,没有睡觉.此代码示例:
try {
Thread aThread = new Thread(new Runnable() {
@Override
public void run() {
try {
int millisec = 5000;
System.out.println(new Date());
System.out.println("We wait " + millisec + " milliseconds");
Thread.sleep(millisec);
System.out.println(new Date());
} catch (Exception e) {
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud)