hlep me: Authorization EJB3 webservice client
iloveyou0222 Sep 10, 2008 5:23 AMHow to join the authorized client information
@Stateless @WebService @RolesAllowed({"AdminUser"}) public class SupportInterfaceBean implements SupportInterfaceBeanRemote { @EJB(beanName = "ChatContentFacade") ChatContentFacadeLocal chatContentFacadeLocal;//必需为Bean的本地接�,�能是远程接� @EJB(beanName = "ChatFacade") ChatFacadeLocal chatFacadeLocal; @WebMethod(operationName="sendMessage") public Boolean sendMessage(@WebParam(name="chatId") Integer chatId,@WebParam(name="content") String content,@WebParam(name="sndObject") String sndObject) { LogUtil.log("���天内容消�", Level.INFO, null); ChatContent chatContent = new ChatContent(); chatContent.setChat(chatFacadeLocal.findById(chatId)); chatContent.setContent(content); chatContent.setIsRead(false); chatContent.setSndObject(Short.parseShort(sndObject)); return chatContentFacadeLocal.save(chatContent); } @WebMethod(operationName="accessMessage") public List<WsChatContent> accessMessage(@WebParam(name="chatId") Integer chatId,@WebParam(name="sndObject") String sndObject) { LogUtil.log("获�指定�件的�天内容", Level.INFO, null); String sqlString = "select * from ChatContent model where model.isRead=0 and model.ChatID=" + chatId + " and model.sndObject='" + sndObject + "'"; List<ChatContent> list = chatContentFacadeLocal.query(sqlString, null, null); List<WsChatContent> results = new ArrayList<WsChatContent>(); for(ChatContent chatContent : list){ WsChatContent wsObj = new WsChatContent(); wsObj.setChatContentId(chatContent.getChatContentId()); wsObj.setContent(chatContent.getContent()); wsObj.setIsRead(chatContent.getIsRead()); wsObj.setSndObject(chatContent.getSndObject().toString()); results.add(wsObj); chatContent.setIsRead(true); chatContentFacadeLocal.update(chatContent); } return results; } }
// TODO Auto-generated method stub SupportInterfaceBean proxy = new SupportInterfaceBeanService().getSupportInterfaceBeanPort(); BindingProvider bindProvider = (BindingProvider) proxy; Map<String, Object> reqCtx = bindProvider.getRequestContext(); //reqCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "/SupportInterfaceBeanService/SupportInterfaceBean"); reqCtx.put(BindingProvider.USERNAME_PROPERTY, "lihuoming"); reqCtx.put(BindingProvider.PASSWORD_PROPERTY, "123456"); reqCtx.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true); System.out.println(proxy.accessMessage(1, "1"));
xception in thread "main" javax.xml.ws.soap.SOAPFaultException: Authorization failure at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188) at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:108) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118) at $Proxy34.accessMessage(Unknown Source) at com.ewke.ejb.ws.Test.main(Test.java:25)