我在VS2010的ExpressInteropBindings Extension的帮助下创建了一个WCF服务。
创建ExpressInteropBindings时提到的事项:
互操作性平台:Metro
主要设置
1)安全性:证书上的用户名
2)安全对话:否
3)可靠的消息:否
高级设置:
1)算法:默认
2)编码:默认
证书选择:
1)店铺位置:Localmachine
2)商店名称:根
3)证书:我使用CodeProject.com链接创建了一个
然后我使用NetBeans
创建了Simple Java Project添加了一个wsdl location
的webservice客户端创建了我自己的信任库并添加了上面创建的证书
给出用户名和密码,因为它是
的自定义身份验证"编辑Web服务属性"在Netbeans
当我尝试调用服务时它会抛出
> 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)