小编use*_*353的帖子

从WSDL生成请求/响应XML

有没有办法从WSDL文件生成请求和响应XML格式 - 如果Web服务现在不活动.

除非它通过请求联系Web服务,否则SoapUI不会给我回复.有没有其他工具可以做到这一点?

我应该假设这些信息是可用的 - 因为没有它 - 像Axis/JAXWS等客户端存根框架将无法生成存根以生成请求然后解释响应.

xml wsdl web-services

27
推荐指数
5
解决办法
8万
查看次数

"是否要运行此应用程序"JNLP对话框 - 再次显示对话框的条件

用户正在运行从浏览器启动的JNLP应用程序.JNLP启动的*.jar文件由受信任的CA颁发的证书签名.

启动jar文件时,会向用户询问是否信任签名者(不是CA - CA已经信任).

问题对话框

如果用户说"是",则将签名者的证书添加到信任存储区.

问题是:同一个对话框再次显示的条件是什么?

  • JNLP调用的*.jar文件是否已更改?
  • JNLP本身有变化吗?
  • JNLP的URL是否已更改?

即使在用户最初选中" 不再显示此项 "复选框后,其中哪些(或其他?)将触发对话框显示

java jnlp signed ria java-web-start

18
推荐指数
1
解决办法
754
查看次数

DatagramPacket - getData总是会返回相同的缓冲区吗?

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()再次检索缓冲区?

测试它,显示它是相同的,但这是否始终保证?

java sockets udp datagram

17
推荐指数
1
解决办法
532
查看次数

适用于Windows的最小剥离式JRE

我有一个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命令行调用我的产品.

那么对我的需求有什么建议吗?

java deployment software-distribution

15
推荐指数
1
解决办法
9959
查看次数

实现X509TrustManager - 将部分验证传递给现有验证程序

我需要忽略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 trueisServerTrusted.

但是,我不想信任所有服务器和所有客户端.

  • 我希望像目前那样为客户端完成所有默认验证.
  • 对于服务器,我想忽略仅针对一个特定证书的服务器证书验证,但是希望继续进行验证,就像当前所做的那样(例如,使用cacerts商店).

我怎样才能实现这样的目标 - 即在我更换之前将部分验证传递给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 security ssl pki x509certificate

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

Java控制台日志未通过Applet写入磁盘

Java控制面板中,我启用了跟踪日志记录.我正在对Java Applet进行故障排除.

Java日志显示在Java控制台中,但不会写入磁盘.

我签到了%APPDATA%\sun\java\deployment- 但那个目录是空的.

根据Java 8文档,这是日志应该写入的位置.我正在运行JRE 8.如何解决这个问题?

java windows logging

15
推荐指数
1
解决办法
920
查看次数

"最终"如何在安全方面发挥作用?

我在维基百科上读过:

最终的类不能被子类化.这样做是出于安全和效率的原因.

我想知道finalJava可以实现哪种安全性?

java security final

11
推荐指数
2
解决办法
1156
查看次数

在调用Web服务时信任过期的自签名证书

有一个受证书保护的Web服务.在调用它的客户端代码中,证书的CA必须存在于信任库(JRE_path\lib\security\cacerts)中 - 如果不存在,则在客户端获得PKIX异常.

如果证书已过期会发生什么 - 客户端代码失败.

但是,可以通过将证书直接添加到信任库来绕过这一点 - 信任过期的证书

即如果证书本身而不是CA存在于信任库中,那么即使证书已过期,一切都可以正常工作.

在我的场景中,webservice证书是一个自签名证书,所以我无论如何都必须将它添加到信任库,即使证书已过期,客户端也能继续正常工作.

现在我的问题是这将在所有场景中工作 - 我的程序只是一个运行本地JRE的命令行程序.

如果有一个应用程序调用webservice并且应用程序在Websphere,JBoss,WebLogic,Tomcat,Glassfish等上运行,并且自签名证书被添加到该环境的信任库中,我是否还可以认为它将继续工作(不是给出过期的错误)?

我认为它会起作用 - 因为那些应用程序服务器也会像任何程序一样使用JRE - 或者我错过了什么?

java web-services pki truststore appserver

11
推荐指数
1
解决办法
2982
查看次数

SourceTree:添加自定义操作以在外部编辑器中打开文件

SourceTree有一个名为unstaged files的窗口,它显示未提交更改的文件.我想右键单击文件名并在外部编辑器中打开它.所以我添加了一个自定义操作 - >编辑 - > pathtoeditor\editor.exe $ REPO\$ FILE.

这将启动编辑器.但SourceTree也一直在显示进度条. 进度条 只有在我关闭外部编辑器后,进度条才会关闭.

我该如何避免这种情况?在外部编辑器中打开文件后,我希望SourceTree的UI返回到正常状态,而无需等待编辑器退出.

git atlassian-sourcetree

10
推荐指数
2
解决办法
1174
查看次数

Class.forName似乎仍然是必要的

来自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服务器运行,它不起作用.

java jar jdbc

9
推荐指数
1
解决办法
530
查看次数