小编use*_*353的帖子

覆盖虚函数的不同之处仅在于调用约定意味着什么?

我正在尝试实现IUnknown.我按照指示进入发球台,但它不起作用.当我尝试编译时,我得到:

Error   2   error C2695: 'testInterfaceImplementation::AddRef': overriding virtual function differs from 'IUnknown::AddRef' only by calling convention  c:\users\seanm\desktop\test\test\source.cpp 6   1   test
Error   3   error C2695: 'testInterfaceImplementation::QueryInterface': overriding virtual function differs from 'IUnknown::QueryInterface' only by calling convention  c:\users\seanm\desktop\test\test\source.cpp 14  1   test
Error   4   error C2695: 'testInterfaceImplementation::Release': overriding virtual function differs from 'IUnknown::Release' only by calling convention    c:\users\seanm\desktop\test\test\source.cpp 22  1   test
Run Code Online (Sandbox Code Playgroud)

从这段代码:

#include <Windows.h>
#include <tchar.h>

class testInterfaceImplementation : public IUnknown {
    protected:
        ULONG AddRef() 
        {
            MessageBox(NULL,
                _T("TEST1"),
                _T("TEST1"),
                NULL);
            return …
Run Code Online (Sandbox Code Playgroud)

c++ com

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

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
查看次数

在Web应用程序中对数据进行数字签名

我有一个Web应用程序,其中一些数据(不是文件)需要使用PKI私钥进行数字签名.PKI证书和私钥将位于USB Cryptotoken中,当插入USB插槽时,它会将证书注册到浏览器.这减轻了使用证书进行身份验证的痛苦,因为我通过在我的应用程序中进行ssl-renegotiation.

但是,使用证书进行数字签名似乎有点棘手.我可以想到几种方法来做到这一点

  1. CAPICOM - http://en.wikipedia.org/wiki/CAPICOM 这适用于支持CAPICOM的浏览器(例如IE).但是,似乎微软已经停止了这一点.

  2. Mozilla Crypto对象 - https://developer.mozilla.org/en-US/docs/JavaScript_crypto

  3. WebCrypto API - 大多数浏览器尚不支持此功能.

  4. 自定义Java Applet或一些可自由开源的JavaApplet控件.

  5. 还有其他选择吗?

我试图找出在Web应用程序中执行此操作的常见,方便和安全的方法.

注意:

  1. 我很乐意支持流行的浏览器.
  2. 我正在签署一小段数据 - 比如100-200字节而不是文件.
  3. 我更喜欢PKCS#7签名.

security web-applications pki digital-signature pkcs#7

8
推荐指数
1
解决办法
3795
查看次数

使用JAX-WS 2.2.5客户端和JDK/JRE 1.5

Java 6随JAX-WS 2.0一起提供.据我所知,Java 5没有附带JAX-WS.

我能够使用JAX-WS 2.2.5和Java 1.6通过使用Java Endorsed Override Mechansim创建Webservice客户端存根,它将JAX-WS列为可以在Java 6中替换的组件之一.

我所要做的就是在JDK和JRE 6路径中创建一个lib\endorsed目录,然后将jaxb-api.jar和jaxws-api.jar从JAX-WS 2.2.5复制到名为endorsed的目录中.JDK和JRE 6都自动选择了2.2.5 JAX-WS.

我在Java 5文档中找不到类似的Java Endorsed Override Mechanism.我怎么在这里找到一个.这并没有像Java 6文档那样提及JAX-WS,但它也提到了认可的dirs.

我在JDK和JRE lib目录中创建了一个类似的'endorsed'目录.我将JAX-WS 2.2.5中的所有罐子(共23个罐子)复制到了背书目录中.但是,与Java 6不同,javac.exe和java.exe都没有直接选择它.我必须使用此命令行参数运行java.exe和javac.exe

-Djava.endorsed.dirs=<JDK/JRE1.5_DIR>\lib\endorsed
Run Code Online (Sandbox Code Playgroud)

一切似乎工作正常,但我想知道这是否可以保证工作 - 任何人以前遇到的任何问题?JAX-WS 2.2.5是否支持Java 5?

java web-services jax-ws jdk1.5

8
推荐指数
1
解决办法
3313
查看次数

等效于wsimport的org.apache.axis.components.net.SunFakeTrustSocketFactory

当我使用Apache Axis生成webservice客户端存根时,我通过调用以下方法使用客户端存根在我的代码中禁用服务器证书信任检查

AxisProperties.setProperty("axis.socketSecureFactory",
     "org.apache.axis.components.net.SunFakeTrustSocketFactory");
Run Code Online (Sandbox Code Playgroud)

如何禁用通过运行生成的客户端存根的信任检查wsimport

我在运行一些测试代码时使用它.

java axis web-services jax-ws wsimport

8
推荐指数
1
解决办法
813
查看次数

无法使用Java 8调试JNLP

我已经尝试过所有方法

运行应用程序

1)javaws -J-Xdebug -J-Xrunjdwp:transport = dt_socket,server = y,suspend = n,address = 9123 My.jnlp

2)在JAVA_TOOL_OPTIONS中设置相同的选项

3)在JAVAWS_VM_ARGS中设置相同的选项

4)在Java控制面板中设置相同的选项(不带-J)

尝试使用或不使用Xnoagent时使用相同的选项

每一个方式,在我尝试从eclipse连接后这样做 - 它无法连接.当我做netstat -a时 - 它没有显示任何人在9123上收听.

我在Windows 10上

java eclipse debugging jnlp java-web-start

8
推荐指数
1
解决办法
653
查看次数

为什么所有jar文件都没有在JRE安装程序中压缩?

我使用7zip解压jre-6u12-windows-i586-p.exe(Oracle JRE安装程序).在解压缩时,我得到了一个core.zip,一个zipper.exe和一些其他文件.

再次爆炸core.zip我找到了一些东西.core.zip包含所有jar文件,就像安装后的7个jar文件一样.

charsets.jar
deploy.jar
javaws.jar
jsse.jar
localedata.jar
plugin.jar
rt.jar
Run Code Online (Sandbox Code Playgroud)

而不是这些jar文件存在相应的包文件

charsets.pack
deploy.pack
javaws.pack
jsse.pack
localedata.pack
plugin.pack
rt.pack
Run Code Online (Sandbox Code Playgroud)

我认为这些是由pack200.exe创建的文件,并在安装后运行unpack200.exe以创建相应的jar文件.

所以现在我有几个问题

  1. 为什么只有这7个文件通过pack200.exe运行.我认为它是因为它们比其他文件更大.但是,安装后打包所有jar文件并解压缩它们不会花费太多精力.

  2. .pack扩展名表明这些是打包的但不是gzip.再次为什么Oracle也不会做一个gzip呢?例如,使用rt.jar打包可将大小从45 MB减小到12 MB,而添加gzip也可将其减少到6 MB.

java compression installer

7
推荐指数
0
解决办法
817
查看次数

wsimport客户端 - 自定义多个包名称

我正在使用wsimport为JAX-WS webservice调用生成客户端存根

wsimport-p选项,允许自定义包的名称.

例如.如果WSDL具有com.abc的命名空间,则可以通过wsimport使用-p com.pqr命令行调用com.abq来替换com.abc .

但是,只有在wsdl中只使用一个命名空间时,这才能正常工作.
如果wsdl中有多个名称空间,是否有办法用不同的包名替换每个名称空间.

例如.如果我希望命名空间com.abc.s1被命名空间com.pqr.s1和命名空间com.abc.s2替换为命名空间com.pqr.s2.

如果我使用wsimport -p com.pqr.s1,它会将所有生成的类放入com.pqr.s1

有没有办法实现我想要的?

java wsdl web-services jax-ws wsimport

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

在Windows Phone 8.1应用程序上复制到剪贴板

如何在Windows 8.1应用程序中将内容复制到剪贴板?我找不到任何API来执行此操作?您可以在旧的Silverlight应用程序中执行此操作,但现在似乎没办法.

有没有解决方法?我希望从一个应用程序共享一些字符串,可以被任何其他应用程序使用.

clipboard windows-phone-8.1

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

当Keystore是USB cryptotoken时,如何从Keystore.load中抑制PIN错误对话框

您好我正在使用SUN PKCS11实现来执行USB cryptotokens中的PKI证书操作

我为特定的USB令牌创建了一个提供者对象,然后调用

Keystore ks =  KeyStore.getInstance(PKCS11_KEYSTORE_TYPE,prov);
Run Code Online (Sandbox Code Playgroud)

然后我加载它

keyStore.load(null, PIN.toCharArray())
Run Code Online (Sandbox Code Playgroud)

PIN是用户输入的特定证书的PIN

现在,由于错误的PIN导致负载失败,不同的cryptotokens表现不同.Keystore::load但是,如果PIN错误则抛出IOException

例如.

  1. Watchdata USB令牌首先抛出一个对话框,其中显示"PIN错误.X尝试离开"然后抛出IOException.
  2. Gemalto&Fietian不会抛出一个对话框,只会抛出一个IOException

我想为所有USB类型显示PIN错误消息,但如果我添加自己的对话框,那么在WatchData上我最终得到2个对话框 (1 from Watchdata & 1 of my own).

有没有办法弄清楚错误信息是否已经显示?或者有没有办法抑制加密狗上显示自己的错误对话框?

java security usb pkcs#11

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