Java无法充当服务的客户端
因此,我在JDeveloper上创建了一个带有套接字适配器的服务,从中读取消息。为此,我遵循了以下链接中提到的步骤: 然而问题是,当我创建java类来测试服务时,我得到了一个错误 我一直在试图找出问题所在,但在这方面我找不到任何有用的东西。以下是我的weblogic控制台中SocketAdapter的说明:Java无法充当服务的客户端,java,web-services,sockets,jdeveloper,Java,Web Services,Sockets,Jdeveloper,因此,我在JDeveloper上创建了一个带有套接字适配器的服务,从中读取消息。为此,我遵循了以下链接中提到的步骤: 然而问题是,当我创建java类来测试服务时,我得到了一个错误 我一直在试图找出问题所在,但在这方面我找不到任何有用的东西。以下是我的weblogic控制台中SocketAdapter的说明: Host: localhost KeepAlive: true EnableSDP: false backlogQueue: 0 port: 12110 SSLEnable: false N
Host: localhost
KeepAlive: true
EnableSDP: false
backlogQueue: 0
port: 12110
SSLEnable: false
NeedClientAuthentication: false
Timeout: 1000
这是我的java类:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
Socket socket;
final String HOST = "localhost";
final int PORT = 12110;
try {
socket = new Socket(HOST, PORT);
} catch (IOException ioe) {
System.out.println(">>>");
System.out.println(ioe.getMessage());
System.out.println(">>>");
throw ioe;
}
System.out.println("sending data: EmpDetails;");
OutputStream os = socket.getOutputStream();
byte[] b = "fn111111ln111111232007-01-01100\nfn211111ln211111232007-11-01200\nfn311111ln311111232007-12-01300".getBytes();
for (int i = 0; i < b.length; i++) {
os.write(b[i]);
}
os.flush();
socket.shutdownOutput();
System.out.println("receiving data");
BufferedReader soc_in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String successCode = soc_in.readLine();
System.out.println("Success Code: " + successCode);
socket.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.io.OutputStream;
导入java.net.Socket;
公共类客户端{
公共静态void main(字符串[]args){
试一试{
插座;
最后一个字符串HOST=“localhost”;
最终int端口=12110;
试一试{
套接字=新套接字(主机、端口);
}捕获(ioe异常ioe){
System.out.println(“>>>”);
System.out.println(ioe.getMessage());
System.out.println(“>>>”);
扔ioe;
}
System.out.println(“发送数据:EmpDetails;”);
OutputStream os=socket.getOutputStream();
byte[]b=“fn111111ln111111232007-01-01100\NFN21111111LN2111111232007-11-01200\NFN3111111LN3111111232007-12-01300”。getBytes();
for(int i=0;i
下面是我尝试运行代码时遇到的错误:
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at SocketAdapter.Client.main(Client.java:18)
java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.connect0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:589)
位于java.net.Socket.connect(Socket.java:538)
位于java.net.Socket。(Socket.java:434)
位于java.net.Socket。(Socket.java:211)
位于SocketAdapter.Client.main(Client.java:18)
将主机作为静态字符串
socket = new Socket(HOST, PORT)
尝试使用
socket = new Socket(InetAddress.getLocalHost().getHostName(), PORT);
上面应该给出本地/专用网络IP地址作为主机。IPv4与IPv6问题?@MrTux你是什么意思?抱歉,我对JDeveloper和创建服务还很陌生。。如何解决此问题?可能是您的服务器仅运行IPv4,而您的客户端尝试仅使用IPv6连接。@MrTux如何检查我的服务器是否在IPv4上运行,客户端是否在IPv6上连接?