Hi,
I change my aspect based on your information. Aspect weaved to the web
services properly. But during execution time it throws exeception on
Glassfish server.
*Web services code:*
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class SimpleInterestMidleware
{
public void invokeService() throws AxisFault
{
ServiceClient client = new ServiceClient();
Options opts = new Options();
opts.setTo(new EndpointReference("
http://localhost:8088/axis2/services/SimpleIntJava"));
opts.setAction("urn:findInterest");
client.setOptions(opts);
System.out.println("Function calling sendReceive");
OMElement res = client.sendReceive(createPayLoad());
System.out.println(res);
}
private static OMElement createPayLoad()
{
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://simpleintjava",
"ns");
OMElement method = fac.createOMElement("findInterest", omNs);
OMElement value = fac.createOMElement("p", omNs);
value.setText("1000");
method.addChild(value);
return method;
}
}
*AspectJ code:*
public aspect SimpleInterestAspect
{
pointcut beforeaspect():call(* sendReceive(..));
before():beforeaspect()
{
System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("====Before aspect=====");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
}
}
Error:(During execution it throws following exception)
Function calling sendReceive
[ERROR] org/aspectj/lang/NoAspectBoundException
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.lang.NoClassDefFoundError:
org/aspectj/lang/NoAspectBoundException
How can i solve this problem?
Thanks,
On Fri, Jan 10, 2014 at 1:46 AM, Andy Clement <[email protected]>wrote:
> For the constructor joinpoint you want this signature:
>
> execution(EndpointReference.new(..))
>
> For the sendReceive you have the signature right but that will only apply
> if you weave *into* the jar containing the implementation of sendReceive.
> If you are weaving into the caller of sendReceive you need:
>
> call(* sendReceive(..))
> (And if using call() there, maybe you also want
> call(EndpointReference.new(..)) for the constructor)
>
> cheers,
> Andy
>
>
>
>
>
>
>
>
> On 9 January 2014 02:03, Shanmuga Priya R <
> [email protected]> wrote:
>
>> Hi,
>>
>> I wanted to use aspectj during invocation of web service from other
>> service. For that i wanted to know how to specify the jointpoint.
>>
>> *Web services code:*
>>
>>
>> *import org.apache.axis2.AxisFault;import
>> org.apache.axis2.addressing.EndpointReference;import
>> org.apache.axis2.client.Options;import
>> org.apache.axis2.client.ServiceClient; import
>> org.apache.axiom.om.OMAbstractFactory;import
>> org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import
>> org.apache.axiom.om.OMNamespace; public class MiddleSimpleInterest{
>> public static void main(String[] args) throws AxisFault {
>> ServiceClient client = new ServiceClient(); Options opts = new
>> Options(); opts.setTo(new
>> EndpointReference("http://localhost:8088/axis2/services/SimpleIntJava
>> <http://localhost:8088/axis2/services/SimpleIntJava>"));
>> opts.setAction("urn:findInterest"); client.setOptions(opts);
>> OMElement res = client.sendReceive(createPayLoad());
>> System.out.println(res); } private static OMElement createPayLoad()
>> { OMFactory fac = OMAbstractFactory.getOMFactory();
>> OMNamespace omNs = fac.createOMNamespace("http://simpleintjava
>> <http://simpleintjava>", "ns"); OMElement method =
>> fac.createOMElement("findInterest", omNs); OMElement value =
>> fac.createOMElement("p", omNs); value.setText("1000");
>> method.addChild(value); return method; }}*
>>
>> *Corresponding Aspectj code:*
>> public aspect MiddlewareAspect
>> {
>> pointcut beforeaspect():execution(* *.sendReceive(..));
>>
>> pointcut beforeexeaspect():execution(* EndpointReference(..));
>> * before():beforeaspect() {
>> System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
>> System.out.println("====Before sendReceive=====");
>> System.out.println("~~~~~~~~~~~~~~~~~~~~~~"); }*
>> before():beforeexeaspect()
>> {
>> System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
>> System.out.println("====Before *EndpointReference*=====");
>> System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
>> }
>> }
>>
>> *Error:*
>>
>> For the above aspectj code i got the exception "*Advice didn't
>> match*".
>>
>>
>> How can i specify those 2 join points? Is it possible in aspectj?
>>
>> Thanks,
>>
>> _______________________________________________
>> aspectj-users mailing list
>> [email protected]
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>
>>
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users