有没有办法从WSDL文件生成请求和响应XML格式 - 如果Web服务现在不活动.
除非它通过请求联系Web服务,否则SoapUI不会给我回复.有没有其他工具可以做到这一点?
我应该假设这些信息是可用的 - 因为没有它 - 像Axis/JAXWS等客户端存根框架将无法生成存根以生成请求然后解释响应.
用户正在运行从浏览器启动的JNLP应用程序.JNLP启动的*.jar文件由受信任的CA颁发的证书签名.
启动jar文件时,会向用户询问是否信任签名者(不是CA - CA已经信任).
如果用户说"是",则将签名者的证书添加到信任存储区.
问题是:同一个对话框再次显示的条件是什么?
即使在用户最初选中" 不再显示此项 "复选框后,其中哪些(或其他?)将触发对话框显示?
byte [] r = new byte[4096];
DatagramPacket dpr = new DatagramPacket(r, r.length);
sock.receive(r);
Run Code Online (Sandbox Code Playgroud)
之后receive
,将dpr.getData()
&r
永远是一样的吗?
例如:我可以直接使用字节数组r
还是需要调用getData()
再次检索缓冲区?
测试它,显示它是相同的,但这是否始终保证?
我有一个jar文件形式的应用程序,大小约为2MB.出于几个原因,我必须将JRE与我的应用程序捆绑在一起.当我使用jar和JRE创建MSI时,MSI大小约为30MB.
我正在寻找一个商业或免费的JRE,我可以捆绑,以便我可以将我的MSI的大小减小到尽可能低.我总共看5MB,但即使高达10MB也可以.预建的JRE二进制文件很棒,但不是绝对必须的.
这些和其他线程中的很多答案都表明Excelsior.我下载了Excelsior JET的评估版并试了一下 - 由于一些原因,我认为它可能不适合我.
1)Excelsior着眼于减少已安装产品的占地面积,而不是安装程序.我不太关心已安装产品的大小 - 我主要关注较小的下载(我的产品安装程序目前为30MB).
2)除此之外,Excelsior对代码进行了大量优化以实现这一点 - 我根本不想触及我的jar文件.我希望我的罐子里有一个较小的JRE.也没有办法关闭一些优化措施.
3)Excelsior创建一个EXE - 我不是特别想要这个 - 我可以通过javaw.exe命令行调用我的产品.
那么对我的需求有什么建议吗?
我需要忽略PKIX路径构建异常
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExc
ption: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)
我知道如何写我自己的类实现要做到这一点X509TrustManager
,我总是return true
从isServerTrusted
.
但是,我不想信任所有服务器和所有客户端.
我怎样才能实现这样的目标 - 即在我更换之前将部分验证传递给X509TrustFactory对象.
这就是我想要做的
public boolean isServerTrusted(X509Certificate[] chain)
{
if(chain[0].getIssuerDN().getName().equals("MyTrustedServer") && chain[0].getSubjectDN().getName().equals("MyTrustedServer"))
return true;
// else I want to do whatever verification is normally done
}
Run Code Online (Sandbox Code Playgroud)
我也不想打扰现有的isClientTrusted
验证.
我怎样才能做到这一点?
在Java控制面板中,我启用了跟踪和日志记录.我正在对Java Applet进行故障排除.
Java日志显示在Java控制台中,但不会写入磁盘.
我签到了%APPDATA%\sun\java\deployment
- 但那个目录是空的.
根据Java 8文档,这是日志应该写入的位置.我正在运行JRE 8.如何解决这个问题?
有一个受证书保护的Web服务.在调用它的客户端代码中,证书的CA必须存在于信任库(JRE_path\lib\security\cacerts)中 - 如果不存在,则在客户端获得PKIX异常.
如果证书已过期会发生什么 - 客户端代码失败.
但是,可以通过将证书直接添加到信任库来绕过这一点 - 信任过期的证书
即如果证书本身而不是CA存在于信任库中,那么即使证书已过期,一切都可以正常工作.
在我的场景中,webservice证书是一个自签名证书,所以我无论如何都必须将它添加到信任库,即使证书已过期,客户端也能继续正常工作.
现在我的问题是这将在所有场景中工作 - 我的程序只是一个运行本地JRE的命令行程序.
如果有一个应用程序调用webservice并且应用程序在Websphere,JBoss,WebLogic,Tomcat,Glassfish等上运行,并且自签名证书被添加到该环境的信任库中,我是否还可以认为它将继续工作(不是给出过期的错误)?
我认为它会起作用 - 因为那些应用程序服务器也会像任何程序一样使用JRE - 或者我错过了什么?
来自Java文档
在以前的JDBC版本中,要获得连接,首先必须通过调用Class.forName方法来初始化JDBC驱动程序.
在类路径中找到的任何JDBC 4.0驱动程序都会自动加载.(但是,必须使用方法Class.forName手动加载JDBC 4.0之前的任何驱动程序.)
我有一个连接到SQL Server Express 2016的平针织Webservice.它有一个4.2驱动程序的sqljdbc42.jar,在CLASSPATH中
但是,如果我省略了Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
调用,我DriverManager.getConnection
会抛出一个SQLException
(没有为jdbc找到合适的驱动程序:sqlserver:// localhost:1433; ....")
getConnection
添加Class.forName
呼叫后,启动成功.
我在Java 8上.
我错过了什么?
更新:我刚刚尝试了一个命令行程序,它没有forName
.但是,在我的Eclipse IDE中,我将我的REST服务作为localhost上的Tomcat 8.0服务器运行,它不起作用.