I've already add 2 modules:* rampart.mar, rahas.ma*r and all* jar* files in*lib * directory of rampart to my projects.
I think that i make a mistake in client codes. Please take a look at my client code, is there any problem or missing? Thanks On 26 February 2011 11:07, Amarnath Reddy <[email protected]>wrote: > Dear Andrew, > You can solve this problem by placing all the libraries of axis21.5.1 > distribution jars of lib directory. > And remove the eclipse added jars. > > > On Sat, Feb 26, 2011 at 9:19 AM, Lasantha Bandara < > [email protected]> wrote: > >> One simple solution is to add required java libraries into your project. >> Those are in \axis2-1.5.1-bin\axis2-1.5.1\lib folder. It will solve many >> problems. >> >> >> On Fri, Feb 25, 2011 at 7:31 PM, andrew vn <[email protected]>wrote: >> >>> Dear all, >>> >>> I'm new to axis2 and web service. I've already written a *Converter*service >>> genertated with tools: >>> >>> - eclipse-helio >>> - jdk1.6.0_23 >>> - axis2-1.5 >>> - rapart-1.5.1 >>> >>> Then, i'm writing a client to call this service, and now i want to use * >>> rampart* module to encrypt and sign the message. >>> >>> *Here is my service Converter code:* >>> >>> *Converter.java* >>> package wtp; >>> public class Converter >>> { >>> public float celsiusToFarenheit ( float celsius ) >>> { >>> return (celsius * 9 / 5) + 32; >>> } >>> >>> public float farenheitToCelsius ( float farenheit ) >>> { >>> return (farenheit - 32) * 5 / 9; >>> } >>> } >>> *PWCBHandler.java* >>> package wtp; >>> >>> import org.apache.ws.security.WSPasswordCallback; >>> import javax.security.auth.callback.Callback; >>> import javax.security.auth.callback.CallbackHandler; >>> import javax.security.auth.callback.UnsupportedCallbackException; >>> import java.io.IOException; >>> >>> public class PWCBHandler implements CallbackHandler { >>> >>> @SuppressWarnings("deprecation") >>> public void handle(Callback[] callbacks) throws IOException, >>> UnsupportedCallbackException { >>> >>> for (int i = 0; i < callbacks.length; i++) { >>> >>> //When the server side need to authenticate the user >>> WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i]; >>> if (pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN) { >>> if(pwcb.getIdentifer().equals("apache") && >>> pwcb.getPassword().equals("password")) { >>> //If authentication successful, simply return >>> return; >>> } else { >>> throw new UnsupportedCallbackException(callbacks[i], "check >>> failed"); >>> } >>> } >>> //When the client requests for the password to be added in to the >>> //UT element >>> pwcb.setPassword("password"); >>> } >>> } >>> } >>> *services.xml* >>> <service name="Converter" > >>> <Description> >>> Test WS-Security >>> </Description> >>> <module ref="rampart"/> >>> <parameter name="InflowSecurity"> >>> <action> >>> <items>UsernameToken</items> >>> <user>apache</user> >>> <passwordCallbackClass>wtp.PWCBHandler</passwordCallbackClass> >>> <passwordType>PasswordText</passwordType> >>> </action> >>> </parameter> >>> <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> >>> <parameter name="ServiceClass" >>> locked="false">wtp.Converter</parameter> >>> </service> >>> >>> *Here is my client code:* >>> * >>> ConverterClient.java* >>> >>> package wtp; >>> >>> import java.rmi.RemoteException; >>> >>> import org.apache.axis2.AxisFault; >>> import org.apache.axis2.Constants; >>> import org.apache.axis2.context.ConfigurationContext; >>> import org.apache.axis2.context.ConfigurationContextFactory; >>> >>> import wtp.ConverterStub.CelsiusToFarenheit; >>> import wtp.ConverterStub.CelsiusToFarenheitResponse; >>> >>> public class ConverterClient { >>> >>> public static void main(String[] args) { >>> try { >>> float celsiusValue = 100; >>> //ConverterStub stub = new ConverterStub(" >>> http://localhost:1234/ConverterProj/services/Converter"); >>> String axis2repository = >>> "/home/hp/Downloads/metadata/.metadata/ConverterClient/WebContent/WEB-INF"; >>> //String axis2xml = >>> "/home/hp/Downloads/metadata/.metadata/ConverterClient/WebContent/WEB-INF/conf/axis2.xml"; >>> >>> ConfigurationContext configContext = >>> ConfigurationContextFactory.createConfigurationContextFromFileSystem(axis2repository,null); >>> ConverterStub stub = new >>> ConverterStub(configContext, " >>> http://localhost:8081/ConverterProj/services/Converter"); >>> //String targetEpr = " >>> http://localhost:8081/ConverterProj/services/Converter"; >>> stub._getServiceClient().engageModule("rampart"); >>> >>> >>> stub._getServiceClient().getOptions().setUserName("apache"); >>> >>> stub._getServiceClient().getOptions().setPassword("password"); >>> >>> stub._getServiceClient().getOptions().setTransportInProtocol(Constants.TRANSPORT_HTTP); >>> CelsiusToFarenheit c2f = new >>> CelsiusToFarenheit(); >>> c2f.setCelsius(celsiusValue); >>> CelsiusToFarenheitResponse res = >>> stub.celsiusToFarenheit(c2f); >>> System.out.println("Celsius : "+celsiusValue+" = >>> "+"Farenheit : "+res.get_return()); >>> } catch (AxisFault e) { >>> e.printStackTrace(); >>> } catch (RemoteException e) { >>> e.printStackTrace(); >>> } >>> >>> } >>> } >>> >>> >>> When i run client, it has the following errors: >>> >>> [ERROR] org/jaxen/JaxenException >>> java.lang.NoClassDefFoundError: org/jaxen/JaxenException >>> at org.apache.rampart.RampartEngine.process(RampartEngine.java:75) >>> at >>> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92) >>> at org.apache.axis2.engine.Phase.invoke(Phase.java:318) >>> at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:254) >>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160) >>> at >>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173) >>> at >>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) >>> at >>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) >>> at >>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) >>> at >>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) >>> at java.lang.Thread.run(Thread.java:662) >>> Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException >>> at >>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) >>> at >>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) >>> ... 21 more >>> >>> Please show me the way to resove this problems. >>> >>> Thanks >>> >> >> >> >> -- >> * >> Lasantha Bandara, >> Computer Science and Engineering, >> University of Moratuwa, >> Sri Lanka. >> * >> blog: http://lasanthasri.blogspot.com/ >> gtalk: lasanthasridinesh >> skype: lasanthasridinesh >> >> > > > -- > Regards, > Amarnath Redddy.G > 91-9985923453. >
