我有一个需要访问Web服务的Java应用程序(不是applet).已经使用JAX-WS生成了Web服务的代理,并且似乎工作正常.在一种情况下,它需要通过Web代理服务器(实际上是Squid 3.0)进行通信,该服务器设置为需要NTLM身份验证.
在Sun的JRE 1.6.0_14上运行,一切都可以正常访问HTTP URL,而无需任何更改:内置的NTLM身份验证器启动,它们都无法正常工作.但是,如果Web服务URL是HTTPS URL,则Web服务调用将在Sun的代码内部失败:
com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.lang.NullPointerException
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:121)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:142)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:211)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:124)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
... our web service call ...
Caused by: java.lang.NullPointerException
at sun.net.www.protocol.http.NTLMAuthentication.setHeaders(NTLMAuthentication.java:175)
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1487)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:896)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:109)
... 16 more
Run Code Online (Sandbox Code Playgroud)
查看Sun的bug数据库会在这些类中出现一些例外情况,但所有这些异常似乎都已得到修复.有没有人遇到这样的事情?有人有这个工作吗?
我正在寻找一本详尽的大学级书籍或学习指南,以便能够编写Mac OS X设备驱动程序.我对这个操作系统完全无知,但我已经熟练使用Linux了.
书籍"Linux设备驱动程序"是否有任何Mac OS X版本?
最佳指南也应该引入OS内部,明确内核空间和用户空间差异等.
提前致谢
是否足以使用运行应用程序服务器进程的用户的权限来保护Java Web应用程序,或者将SecurityManager与合适的策略文件一起使用是否合理?
我曾经做过前者,而不是后者,但有些客户希望我们也使用SecurityManager,它会明确地为每个第三方组件提供权限,以确保没有任何恶意代码潜伏在那里.
我已经看到一些Servlet容器,比如Resin,建议不要使用SecurityManager来减慢速度.有什么想法吗?
我想(需要)从检查某些环境变量的perl脚本启动一个子进程.在一个实例中,环境变量需要存在但是为空.
$ENV{"GREETING"} = "Hello World"; # Valid
$ENV{"GREETING"} = ""; # also valid
Run Code Online (Sandbox Code Playgroud)
我可以设置$ ENV {"GREETING"} =""; 在那个perl脚本中,$ ENV {"GREETING"}是空的,但在任何子流程中,环境变量都不存在.
这是一些示例代码来演示.这个脚本env_in.pl设置了一些环境变量,ZZZ_3为空.然后它调用env_out.pl来输出环境变量,输出中缺少ZZZ_3.
#!/usr/bin/perl
# env_in.pl
use strict;`enter code here`
use warnings;
$ENV{ZZZ_1} = "One";
$ENV{ZZZ_2} = "Two";
$ENV{ZZZ_3} = "";
$ENV{ZZZ_4} = "Four";
my (@cmd) = ("perl", "env_out.pl");
system(@cmd) == 0 or die "system @cmd failed: $?";
Run Code Online (Sandbox Code Playgroud)
这是env_out.pl脚本.
#!/usr/bin/perl
use strict;
use warnings;
print ($_," = ", $ENV{$_}, "\n") for (sort keys %ENV);
Run Code Online (Sandbox Code Playgroud)
我在WinXP盒子上使用ActiveState perl版本v5.8.8.
我知道这可以在python中工作,但我没有选择实现语言,它必须是Perl.
我是OpenId的新手,我在理解如何在身份验证完成后使用OpenId时遇到了一些问题.
我正在创建一个新站点,我在使openId身份验证工作时没有任何问题.但是我不确定在用户登录后我应该如何存储用户相关数据.
在openId之前,我将拥有自己的注册过程,具有唯一UserId(整数)的UserTable,并且涉及与某些用户活动相关的数据的所有其他表将只具有标识用户的UserId列.
我现在应该在表格中使用OpenId ID吗?我应该创建一个非常简单的OpenId-> UserId表,每个登录都映射到并且如前所述存储数据吗?当用户想要使用不同的OpenId提供商时会发生什么?
我正在使用我的silverlight应用程序的wcf服务.wcf服务的位置在ServiceReferences.ClientConfig文件中声明,并且必须更改为安装应用程序的位置.
但是,此文件包含在xap文件中,并且在部署应用程序时不能轻易更改.是否有另一种方法从silverlight应用程序中引用wcf服务?或者,如何更改xap文件中的ServiceReferences.ClientConfig?
我有一个在Websphere Application Server 6.0上运行的应用程序,由于内存不足,它几乎每天都会崩溃.从详细的GC确定存在内存泄漏(其中许多)
不幸的是,应用程序是由外部供应商提供的,并且解决问题是缓慢而痛苦的过程.作为流程的一部分,我需要在每次OOM发生时收集日志和堆转储.
现在我正在寻找一些如何实现自动化的方法.基本问题是如何检测OOM条件.一种方法是创建shell脚本,它将定期搜索新的heapdumps.这种做法看起来有点脏.另一种方法可能是以某种方式利用JMX.但是我在这方面很少或根本没有经验,也不知道该怎么做.
或者是WAS的某种触发/挂钩?非常感谢你的每一个建议!
我将用Qt开发一堆项目,这些项目应该在Visual Studio下使用Qt集成(商业)和Qt Creator与LGPL SDK进行编译.我的主要IDE是VS,但我也逐渐喜欢Qt Creator.能够同时在两者中工作会很好.无论如何,我需要在某种程度上做到这一点.
最烦人的问题是项目管理.我应该首先创建.pro文件,然后将其导入VS吗?或者我应该首先创建VS项目并通过Qt集成实用程序创建.pro文件?最好的方法是什么?
我想听听你对这个问题的看法.
可能重复:
人为因素设计(满足UI设计中的心理需求)
开发人员应该了解用户界面设计,可用性以及人机交互的技术方面?
我们应该采用哪些有关使用场景,用户行为模式以及用户对计算机交互的心理的知识来设计有效的软件,帮助用户以自然而简单的方式解决问题,而不会构成障碍并制造障碍?
设计软件比构建体系结构,实现需求和创建漂亮的界面要多得多.漂亮的界面可能不一定有用和有效,反之亦然,丑陋的软件实用程序可以成为许多用户喜爱的工具.一个体面的开发人员或设计师应该至少基本的知识来平滑用户体验?
请关注每个答案的一个问题,描述问题,举例,用户体验如何受损以及解决问题的方法是什么.
我将开始:
问题:在一个屏幕上立即显示具有大量控件和选项的界面对用户来说可能是压倒性的.他们将不得不浪费时间浏览所有他们试图找到他们需要的一个选项.他们也会在这个过程中分心,看到另外一个功能,去那里了解它,也许可以阅读帮助,看看它是否可以解决他们的问题,然后是另一个,依此类推,直到它们完全丢失.
示例:作为一个很好的示例,我将引用2007年之前版本的Microsoft Word(以及其他Office应用程序).大量的菜单和选项一直让我感到害怕.我设法记住了我最常需要的选项,但就是这样.额外的一切,我倾向于google我需要了解的东西,这个特殊功能位于选项森林中.
解决方案:隐藏一些逻辑结构的菜单和子菜单背后的所有额外选项,以便用户能够通过逻辑思维过程找到它们.通过将选项分组到选项卡中,2007年的重新设计显然已将问题考虑在内.我发现了许多我需要的新选项,没有谷歌搜索,只是想到它可能属于哪里,并在那里寻找.并不总是有效,但可以感受到改善.
现在,你有什么想法?