You need to include the jaxen-* jar in your classpath along with other jars
available in the lib directory of Axis2 distribution.

Thanks,
Thilina

On Sat, Feb 26, 2011 at 9:47 AM, andrew vn <[email protected]> wrote:

> 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.
>>
>
>


-- 
Thilina Mahesh Buddhika
http://blog.thilinamb.com

Reply via email to