我使用许多Web服务与SAP通信。这些服务是使用RAD中的向导生成的。标准登录在部署描述的WS绑定中定义。
SAP团队现在希望我使用当前用户的登录详细信息调用一个特定服务,而不是使用标准登录。系统将提示用户输入登录详细信息,这些信息将存储在会话中。
我原以为我需要使用Sub diversestickersKoole()
Dim xlApp As Object
Dim xlWorkBook As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWorkBook = xlApp.Workbooks.Open("V:\Oliedocs\Koole\Stickers Scheepstanks Koole.xltm", True, False)
xlWorkBook.Activate
Set xlApp = Nothing
Set xlWorkBook = Nothing
End Function
,但我无法立即查看如何访问用户的会话。
我可以手动创建SOAP请求并自己设置身份验证,但我宁愿使用该向导进行所有服务。
在运行时覆盖Web服务身份验证的最佳方法是什么?
答案 0 :(得分:0)
Properties prop = new Properties();
InitialContext ctx = new InitialContext(prop);
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService");
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp");
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class);
((javax.xml.rpc.Stub) sq)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "myUser");
((javax.xml.rpc.Stub) sq)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "myPwd");