Fórumok

Problems using axis-1.4 in portlet with Liferay 6.0.5

Greg Roberts, módosítva 13 év-val korábban

Problems using axis-1.4 in portlet with Liferay 6.0.5

New Member Bejegyzések: 11 Csatlakozás dátuma: 2010.10.14. Legújabb bejegyzések
My portlet works fine with liferay 5.2.2 and liferay 5.2.3 but fails to start up in liferay 6.0.5.

I get lots of casting failures when my portlet tries to set up its axis-1.4 services:

===========================================================================

 FATAL [InternalException:88] Exception:
org.apache.axis.ConfigurationException: org.apache.axis.deployment.wsdd.WSDDException: java.lang.ClassCastException: org.apache.axis.encoding.ser.BeanSerializerFactory cannot be cast to org.apache.axis.encoding.SerializerFactory
java.lang.ClassCastException: org.apache.axis.encoding.ser.BeanSerializerFactory cannot be cast to org.apache.axis.encoding.SerializerFactory
        at org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(BaseSerializerFactory.java:277)
        at org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(WSDDService.java:542)
        at org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java:253)
        at org.apache.axis.deployment.wsdd.WSDDService.<init>(WSDDService.java:233)
        at org.apache.axis.deployment.wsdd.WSDDDeployment.<init>(WSDDDeployment.java:192)
        at org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(WSDDDocument.java:139)
        at org.apache.axis.deployment.wsdd.WSDDDocument.<init>(WSDDDocument.java:65)
        at org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)
        at org.apache.axis.AxisEngine.init(AxisEngine.java:172)
        at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)
        at org.apache.axis.server.AxisServer.<init>(AxisServer.java:88)
        at org.apache.axis.server.DefaultAxisServerFactory.createServer(DefaultAxisServerFactory.java:109)
        at org.apache.axis.server.DefaultAxisServerFactory.getServer(DefaultAxisServerFactory.java:73)
        at org.apache.axis.server.AxisServer.getServer(AxisServer.java:73)
        at org.apache.axis.transport.http.AxisServletBase.getEngine(AxisServletBase.java:185)
        at org.apache.axis.transport.http.AxisServletBase.getOption(AxisServletBase.java:396)
        at org.apache.axis.transport.http.AxisServletBase.init(AxisServletBase.java:112)
        at org.apache.axis.transport.http.AxisServlet.init(AxisServlet.java:156)
        at javax.servlet.GenericServlet.init(GenericServlet.java:212)
        at com.liferay.portal.servlet.AxisServlet.init(AxisServlet.java:65)
        at com.liferay.portal.kernel.servlet.PortalClassLoaderServlet.portalInit(PortalClassLoaderServlet.java:73)
        at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:52)
        at com.liferay.portal.kernel.servlet.PortalClassLoaderServlet.init(PortalClassLoaderServlet.java:44)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
</init></init></init></init></init>


===========================================================================

Presumably liferay 6.0.5 is opening up an axis jar that's incompatible with mine in my portlet ?

How can I work around this problem ?

Is there some way to allow liferay to use his version of axis and my portlet to use another version ?

(BTW my portlet will start up OK if I remove the wsdd file that defines the web services)

Thanks for any guidance.
Greg
thumbnail
priti parmar, módosítva 12 év-val korábban

RE: Problems using axis-1.4 in portlet with Liferay 6.0.5

New Member Bejegyzések: 24 Csatlakozás dátuma: 2010.11.29. Legújabb bejegyzések
Hi Greg,

try this add dependency jars in your liferay-plugin-package.properties

portal-dependency-jars=\
axis.jar,\
jaxrpc.jar,\
commons-discovery.jar,\
saaj-api.jar,\
log4j.jar,\
wsdl4j.jar,\
commons-logging.jar
Greg Roberts, módosítva 12 év-val korábban

RE: Problems using axis-1.4 in portlet with Liferay 6.0.5

New Member Bejegyzések: 11 Csatlakozás dátuma: 2010.10.14. Legújabb bejegyzések
Thanks for the suggestion.

Unfortunately I don't think this will work because this would simply load the axis.jar that Liferay has which is incompatible with the axis.jar which I want to use.

If I could define that my portlet only opens *my* version of axis and does not have the liferay one on the classpath I think I would be OK... but I don't know how to do that whilst leaving Liferay's jars in place (because it needs them for other things).

Do you know how to do that?
Alex S, módosítva 11 év-val korábban

RE: Problems using axis-1.4 in portlet with Liferay 6.0.5

New Member Bejegyzések: 9 Csatlakozás dátuma: 2012.08.28. Legújabb bejegyzések
I'm seeing this problem in V 6.1.1.0(ee), only on one portlet though, no separate Axis JAR, nothing referenced in the "liferay-plugin-package.properties" and it works fine unless the argument to any of my methods is the Service Builder object the interface relates to. As it can't take that object as an argument it makes it pretty useless as an interface. Anyone else seen this?
Alex S, módosítva 11 év-val korábban

RE: Problems using axis-1.4 in portlet with Liferay 6.0.5

New Member Bejegyzések: 9 Csatlakozás dátuma: 2012.08.28. Legújabb bejegyzések
Ok, turns out re-booting the server and clearing the cache doesn't quite work, but re-booting my development machine has had a positive effect. Totally unable to explain why though.