小编pab*_*blo的帖子

使用Java 8将List <String>转换为Set

是否有一个单行将String列表转换为一组枚举?例如,拥有:

public enum MyVal {
    ONE, TWO, THREE
}
Run Code Online (Sandbox Code Playgroud)

List<String> myValues = Arrays.asList("ONE", "TWO", "TWO");
Run Code Online (Sandbox Code Playgroud)

我想转换myValuesSet<MyVal>包含相同项目的项目:

EnumSet.of(MyVal.ONE, MyVal.TWO)
Run Code Online (Sandbox Code Playgroud)

java java-8

7
推荐指数
1
解决办法
5885
查看次数

无法从Weblogic访问HTTPS

我有一个Weblogic访问HTTPS服务器的问题,我可以访问其他HTTPS网址,如谷歌或微软.尝试连接到URL的代码是:

URL url = new URL("https://myserver.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent", "Mozilla/5.0");

// fails here
responseCode = connection.getResponseCode();
Run Code Online (Sandbox Code Playgroud)

我得到以下堆栈跟踪:

java.io.IOException: Connection closed, EOF detected
    at weblogic.socket.JSSEFilterImpl.handleUnwrapResults(JSSEFilterImpl.java:539)
    at weblogic.socket.JSSEFilterImpl.unwrapAndHandleResults(JSSEFilterImpl.java:456)
    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:80)
    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:64)
    at weblogic.socket.JSSEFilterImpl.doHandshake(JSSEFilterImpl.java:59)
    at weblogic.socket.JSSEFilterImpl.write(JSSEFilterImpl.java:390)
    at weblogic.socket.JSSESocket$JSSEOutputStream.write(JSSESocket.java:78)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)
    at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:186)
    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:400)
    at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
    at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1005)
Run Code Online (Sandbox Code Playgroud)

在Weblogic的控制台中,我将以下设置设置为true:环境>服务器> [我的服务器]> SSL>高级>使用JSSE SSL

如果我禁用该属性,我会得到以下堆栈跟踪:

javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(Unknown Source)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown Source)
    at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java ssl weblogic weblogic11g

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

避免超出PermGen内存和GC开销限制

我正在尝试生成类并在运行时加载它们.
我正在使用一个ClassLoader对象来加载类.因为我不想耗尽PermGen内存,所以我不时引用类加载器并创建一个新的加载要使用的新类.这似乎工作正常,我不会PermGen失去记忆.问题是,当我这样做时,一段时间后我得到以下错误:

java.lang.OutOfMemoryError: GC overhead limit exceeded 
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,什么时候我应该取消引用类加载器以避免错误?:
我应该在我的代码中监视PermGen用法,以便在取消使用接近限制System.gc()时取消引用类加载器并调用PermGen吗?
或者我应该采用不同的方法?
谢谢

java garbage-collection permgen classloader java-6

5
推荐指数
1
解决办法
1757
查看次数