很多时候,Java应用程序需要连接到Internet.最常见的示例发生在读取XML文件并需要下载其架构时.
我在代理服务器后面.如何设置JVM以使用代理?
我在我的代码中使用了RMI:
import java.rmi.*;
public interface AddServerIntf extends Remote {
double add(double d1,double d2) throws RemoteException;
}
Run Code Online (Sandbox Code Playgroud)
import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
public AddServerImpl() throws RemoteException {
}
public double add(double d1,double d2) throws RemoteException {
return d1+d2;
}
}
Run Code Online (Sandbox Code Playgroud)
import java.net.*;
import java.rmi.*;
public class AddServer {
public static void main(String args[]) {
try {
AddServerImpl addServerImpl=new AddServerImpl();
Naming.rebind("AddServer",addServerImpl);
} catch(Exception exc) {
System.out.println(exc);
}
}
}
Run Code Online (Sandbox Code Playgroud)
import java.rmi.*;
public class AddClient { …Run Code Online (Sandbox Code Playgroud) 我们有一个Webstart客户端,它通过HTTPS使用发送序列化对象与服务器通信java.net.HttpsURLConnection.
在我的本地机器和办公室的测试服务器上,一切都运行得很好,但我遇到了一个非常非常奇怪的问题,这个问题只发生在我们的生产和登台服务器上(偶尔也会发生).我知道这些服务器和我们办公室的服务器之间的主要区别在于它们位于其他地方,与它们的客户端 - 服务器通信速度相当慢,但在此之前它在生产中也能正常工作.
无论如何,这是发生了什么:
Content-Typeon之类的属性之后,客户端HttpURLConnection调用getOutputStream()它来获取要写入的流.
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
请注意,这不是a SocketTimeoutException,如果在建立连接之前超时到期,则该connect()方法 …