Foren

Problems using axis-1.4 in portlet with Liferay 6.0.5

Greg Roberts, geändert vor 13 Jahren.

Problems using axis-1.4 in portlet with Liferay 6.0.5

New Member Beiträge: 11 Beitrittsdatum: 14.10.10 Neueste Beiträge
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, geändert vor 12 Jahren.

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

New Member Beiträge: 24 Beitrittsdatum: 29.11.10 Neueste Beiträge
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, geändert vor 12 Jahren.

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

New Member Beiträge: 11 Beitrittsdatum: 14.10.10 Neueste Beiträge
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, geändert vor 11 Jahren.

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

New Member Beiträge: 9 Beitrittsdatum: 28.08.12 Neueste Beiträge
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, geändert vor 11 Jahren.

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

New Member Beiträge: 9 Beitrittsdatum: 28.08.12 Neueste Beiträge
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.