我正在尝试在java SE中设置一个非常简单的焊接实现.
我有扩展类:
public class MyExtension implements Extension {
void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {
System.out.println("Starting scan...");
}
<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> annotatedType, BeanManager beanManager) {
System.out.println("Scanning type: " + annotatedType.getAnnotatedType().getJavaClass().getName());
}
void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {
System.out.println("Finished the scanning process");
}
public void main(@Observes ContainerInitialized event) {
System.out.println("Starting application");
new Test();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个我想要注入的简单类:
public class SimpleClass {
public void doSomething() {
System.out.println("Consider it done");
}
}
Run Code Online (Sandbox Code Playgroud)
最后我要把它注入的课程:
public class Test {
@Inject
private SimpleClass simple;
@PostConstruct
public void initialize() …Run Code Online (Sandbox Code Playgroud) 我必须分析 zip 文件以检查其中的内容有多大,但是 ZipEntry.getSize() 不断返回 -1。如果原始尺寸未知,则这是根据规格的,但由于某种原因,7-zip 似乎确实知道实际尺寸,因为如果我用它打开 zip,就会显示它。
有谁知道 7-zip 是如何做到这一点的?它只是简单地估计吗?
我有一个基于apache http客户端的http客户端,它似乎没有ssl证书的问题.我对全球认可的证书和自签名证书进行了单元测试,并使用自定义SSLSocketFactory.
但是当我在代理后面运行相同的代码时,它停止了工作.我一直得到这个可怕的例外:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
Run Code Online (Sandbox Code Playgroud)
我将代码减少到最低限度,它仍然会抛出相同的异常.代码:
URI uri = new URI("https://www.google.com");
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
new HttpHost("proxy.int", 8080, "https"));
HttpUriRequest request = new HttpGet(uri);
HttpResponse response = client.execute(request);
Run Code Online (Sandbox Code Playgroud)
如果没有指定任何内容,我不确定它是否使用默认的ssl设置,所以我也明确地添加了它:
URI uri = new URI("https://www.google.com");
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
new HttpHost("proxy.int", 8080, "https"));
client.getConnectionManager().getSchemeRegistry().register(
new Scheme("https", 443, SSLSocketFactory.getSystemSocketFactory()));
HttpUriRequest request = new HttpGet(uri);
HttpResponse response = client.execute(request); …Run Code Online (Sandbox Code Playgroud) 我正在JSF中创建我的第一个复合组件,但我被一个表现奇怪的rerender难倒.这是组件实现(它意味着是一个弹出窗口):
<composite:implementation>
<h:outputScript name="nb-popup.js" library="js"/>
<h:outputStylesheet name="nb-popup.compiled.css" library="style"/>
<div id="#{cc.clientId}_container" class="nb_popup_container">
<div style="width:#{cc.attrs.width};height:#{cc.attrs.height};" id="#{cc.clientId}" class="nb_popup">
<div id="#{cc.clientId}_header" class="nb_popup_header">
<span class="nb_popup_header_content">
<composite:renderFacet name="header"/>
</span>
<span class="nb_popup_header_controls">
<composite:renderFacet name="controls"/>
</span>
</div>
<div id="#{cc.clientId}_content" class="nb_popup_content">
<composite:insertChildren/>
</div>
</div>
</div>
<script>popup('#{cc.clientId}');</script>
</composite:implementation>
Run Code Online (Sandbox Code Playgroud)
例如,假设我们有:
<nb:popup id="extract">
test
</nb:popup>
Run Code Online (Sandbox Code Playgroud)
生成的HTML没问题:
<div id="extract_container" class="nb_popup_container">
<div style="width:auto;height:auto;" id="extract" class="nb_popup">
<div id="extract_header" class="nb_popup_header">
<span class="nb_popup_header_content">
</span>
<span class="nb_popup_header_controls">
</span>
</div>
<div id="extract_content" class="nb_popup_content">
test
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在假设我有一个按钮:
<h:commandLink value="reload">
<f:ajax render=":extract"/>
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)
按下它后,我得到以下部分响应,其中实际内容显然不是它应该是的位置:
<div id="extract_container" class="nb_popup_container">
<div style="width:auto;height:auto;" …Run Code Online (Sandbox Code Playgroud) 我创建了一个扩展TextField的自定义组件,允许对特定类型的字符串进行高级编辑.
箭头键已经被重新定义,以允许特定的行为,应该不会触发默认插入符移动,但是我似乎不能够从移动停止.我已经消耗了()我能想象到的每种类型的事件,当按下箭头键时,插入符将始终移动.
此外,当键入新字母时,它首先被验证,如果发现无效,则撤消编辑.但是,当您输入的字母无效时,插入符始终移动一个位置,而不应移动.
我目前有逻辑,它将把插入符移动到正确的位置,因此控件或多或少有效,唯一的问题是当代码试图对抗默认移动时,用户看到插入符号疯狂地跳来跳去.
有趣的是:我为控件提供了一个上下文菜单,当显示上下文菜单时,插入符号会停止其默认移动(或者它突然足够快,因此用户看不到它).
我正在深入研究上下文菜单的源代码,看它是否设置或取消设置,但我没有看到它.有任何想法如何停止文本字段的默认插入符号移动?