我在 ExpressInteropBindings Extension for VS2010 的帮助下创建了一个 WCF 服务。
创建 ExpressInteropBindings 时提到的事情:
互操作性平台:Metro
主要设置
1)安全:用户名超过证书
2)安全对话:否
3)可靠消息:否
高级设置:
1)算法:默认
2)编码:默认
证书选择:
1) 存储位置:Localmachine
2) 存储名称:Root
3) 证书:我使用 CodeProject.com 链接创建了一个
然后我使用 NetBeans 创建了简单的 Java 项目
添加了一个带有 wsdl 位置的 web 服务客户端
创建了我自己的信任库并添加了上面创建的证书,
给定用户名和密码,因为它是自定义身份验证
Netbeans 中的“编辑 Web 服务属性”
当我尝试调用它抛出的服务时
> java.lang.NullPointerException at
> java.util.PropertyResourceBundle.handleGetObject(PropertyResourceBundle.java:166)
> at java.util.ResourceBundle.getObject(ResourceBundle.java:441) at
> java.util.ResourceBundle.getString(ResourceBundle.java:407) at
> java.util.logging.Formatter.formatMessage(Formatter.java:118) at
> java.util.logging.SimpleFormatter.format(SimpleFormatter.java:151) at
> java.util.logging.StreamHandler.publish(StreamHandler.java:211) at
> java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:116) at
> java.util.logging.Logger.log(Logger.java:731) at
> java.util.logging.Logger.doLog(Logger.java:754) at
> java.util.logging.Logger.log(Logger.java:864) at
> com.sun.xml.ws.security.impl.policy.CertificateRetriever.digestBST(CertificateRetriever.java:136)
> at
> com.sun.xml.wss.jaxws.impl.SecurityClientTube.processRequest(SecurityClientTube.java:211)
> at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629) at
> com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) at
> com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573) at
> com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470) at
> com.sun.xml.ws.client.Stub.process(Stub.java:319) at
> com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:157) at
> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
> at
> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
> at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140) at
> com.sun.proxy.$Proxy41.getData(Unknown Source) at
> metrointeropwithoutrandsec.MetroInterOpWithoutRandSec.main(MetroInterOpWithoutRandSec.java:38)