1、新建Session的WebService測試代碼,代碼很簡單。就是記錄用戶登錄的狀態信息,放在MessageContext的ServiceContext中。代碼如下:
代碼
這里保存Session信息的主要是通過MessageContext這個上下文來獲取ServiceContext的上下文,然后通過setProperty來保存session的信息,通過getProperty來獲取session信息。
Session的作用可以在使用WebService登錄的時候,保存用戶的登錄狀態或是會話消息。但是使用session需要設置發布Service的時候,設置WebService的作用域。作用域默認是request,它還有另外三個值,分別是:application、soapsession、transportsession;我們可以選擇使用transportsession和application分別實現同一個WebService類和跨WebService類的會話管理。
2、使用axis2的工具生成aar文件,并發布LoginService服務。
關于這里發布LoginService的步驟就不一一介紹,上面已經有說過了。當你用這個步驟發布WebService的時候,你可以打開壓縮文件的方式aar文件(其實不一定要用aar文件,只是官方推薦的aar,jar文件也是可以的),在META-INF目錄下有一個services.xml文件,看到它的<service>這個標簽,沒有設置scope屬性。
scope默認的是request,我們得修改services.xml的內容。
修改后services.xml內容如下:
代碼
這個地方的scope是關鍵,如果這里不設置的話session是無法存放信息。
3 、用控制臺Dos命令發布WebService
這個是手工打包,也就是我們經常用的jar命令
首先我們得需要一個services.xml文件,文件內容如上面的。
<service name= "LoginService" scope= "transportsession" >
name是當前發布WebService的名稱,scope是會話作用域。保存在Session中就要用這個transportsession這個作用域。
<parameter name= "ServiceClass" >com.hoo.service.LoginService</parameter>
這個是當前Service的類路徑,包名+類名
<messageReceivers>
<messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-only"
class= "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-out"
class= "org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
這個應該是參數和返回值信息的解析類,in-only是輸入也就是參數,in-out是輸出也就是返回值。
A、 首先,我們在C盤下新建一個sessionService的目錄,然后將上面的services.xml文件中的ServiceClass的類的class文件copy到這個目錄下,注意要帶上package目錄,然后在sessionService目錄下新建一個META-INF將上面的services.xml文件放到這個目錄下
B、 然后運行cmd進入控制臺,進入sessionService這個目錄,鍵入命令如下:
jar cvf service.aar .
service.aar是打包后的文件名稱,.是指代當前目錄
如果你不懂jar命令,你可以輸入jar會有命令語法的提示
進入sessionService這個目錄中,你可以看到service.aar文件就有了。然后將這個文件copy到axis2的WEB-INF目錄下的services目錄中,也就是
[tomcat-home]\webapps\axis2\WEB-INF\services
然后可以通過: http://localhost:8080/axis2/services/listServices
就可以查看剛才發布的服務了。
這樣就完成手工發布打包發布WebService了
C、 編寫WebService客戶端的請求代碼
代碼
執行后,結果如下:
true
admin#登陸成功
上面要說明的是options.setManageSession( true );是開啟對Session管理的支持
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
