Weblogic 只允許能連線5個IP的解決辦法

nmtcolin發表於2008-04-28

Weblogic 只允許能連線5個IP的解決辦法

0. Weblogic試用版只允許連線5個不同IP, 儘管可重新啟動weblogic server可以重新獲取5個IP,
對於開發測試環境來說, 對於開發測試來說很不方便, 也不可能購買Weblogic的licences.


1. shell scripts & Java command
local_port: 12345
host: ydc062
remote_port: 8080

java -classpath ./Relay.jar Relay 12345 ydc062 8080

2. 使用方法
5 ip)

limit forward to above access)


3. Java source code

/**
* DataRelay.java
*/
import java.io.InputStream;
import java.io.OutputStream;

public class DataRelay implements Runnable {
private InputStream in;

private OutputStream out;

public void run() {
byte abyte0[] = new byte[4096];
try {
do {
int i = in.read(abyte0);
if (i == 0)
break;
out.write(abyte0, 0, i);
} while (true);
try {
in.close();
} catch (Exception exception) {
}
try {
out.close();
} catch (Exception exception1) {
}
} catch (Exception exception2) {
try {
in.close();
} catch (Exception exception3) {
}
try {
out.close();
} catch (Exception exception4) {
}
}
}

public DataRelay(InputStream inputstream, OutputStream outputstream) {
in = inputstream;
out = outputstream;
}
}


/**
* Relay.java
*/
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Relay implements Runnable {

public int listenPort;

public String relayHost;

public int relayPort;

public Relay() {
}

public Relay(int i, String s, int j) {
listenPort = i;
relayHost = s;
relayPort = j;
}

public void run() {
try {
ServerSocket serversocket = new ServerSocket(listenPort);
do {
Socket socket = serversocket.accept();
try {
Socket socket1 = new Socket(relayHost, relayPort);
startRelay(socket.getInputStream(), socket1
.getOutputStream());
startRelay(socket1.getInputStream(), socket
.getOutputStream());
} catch (Exception exception1) {
exception1.printStackTrace();
socket.close();
}
} while (true);
} catch (Exception exception) {
exception.printStackTrace();
}
}

public void startRelay(InputStream inputstream, OutputStream outputstream)
throws IOException {
DataRelay datarelay = new DataRelay(inputstream, outputstream);
Thread thread = new Thread(datarelay);
thread.start();
}

public static void main(String args[]) {
if (args.length < 3) {
System.out.println("-------------------------------------------");
System.out.println("Usage: ./Relay local_port host remote_port");
System.out.println("-------------------------------------------");
System.exit(0);
}
int i = 0;
try {
i = Integer.parseInt(args[0]);
} catch (Exception exception) {
System.out.println("Invalid local port: " + args[0]);
System.exit(0);
}
int j = 0;
try {
j = Integer.parseInt(args[2]);
} catch (Exception exception1) {
System.out.println("Invalid remote port: " + args[2]);
System.exit(0);
}
Relay relay = new Relay(i, args[1], j);
relay.run();
}

}

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4082/viewspace-1003120/,如需轉載,請註明出處,否則將追究法律責任。

相關文章