<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Problem with @XmlJavaTypeAdapter
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/haza">Umit Gezer</a> in <i>JBoss Web Services Metro</i> - <a href="http://community.jboss.org/message/538876#538876">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hi All,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I'm coding a set of web services and having some problems when using @XmlJavaTypeAdapter.</p><p>Here is the exception I get when I try to deploy to JBoss 5.1 and jbossmetro 3.2.2.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{quote}</p><p>09:09:30,571 INFO  [server] Dynamically creating request wrapper Class au.com.finsyn.acuritywebservices.services.member.jaxws.GetMemberDetails<br/>09:09:30,571 INFO  [server] Dynamically creating response wrapper bean Class au.com.finsyn.acuritywebservices.services.member.jaxws.GetMemberDetailsResponse<br/>09:09:30,602 ERROR [AbstractKernelController] Error installing to Real: name=vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/AcurityWebServices.war/ state=PreReal mode=Manual requiredState=Real<br/>org.jboss.deployers.spi.DeploymentException: Error during deploy: vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/AcurityWebServices.war/</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)<br/>        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:177)<br/>        at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)<br/>        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)<br/>        at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)<br/>        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)<br/>        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)<br/>        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)<br/>        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)<br/>        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)<br/>        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)<br/>        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)<br/>        at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)<br/>        at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)<br/>        at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)<br/>        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)<br/>        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)<br/>        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)<br/>        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)<br/>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)<br/>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)<br/>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)<br/>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)<br/>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br/>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br/>        at java.lang.Thread.run(Thread.java:619)<br/>Caused by: javax.xml.ws.WebServiceException: Failed to build METRO runtime model<br/>        at org.jboss.wsf.stack.metro.metadata.RuntimeModelDeploymentAspect.start(RuntimeModelDeploymentAspect.java:134)<br/>        at org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer.internalDeploy(WSDeploymentAspectDeployer.java:107)<br/>        at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)<br/>        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)<br/>        ... 24 more<br/>Caused by: javax.xml.ws.WebServiceException: java.lang.IllegalArgumentException: value class au.com.finsyn.acuritywebservices.utils.MapAdapter<br/>        at com.sun.xml.ws.model.WrapperBeanGenerator.createResponseWrapperBean(WrapperBeanGenerator.java:280)<br/>        at com.sun.xml.ws.model.RuntimeModeler.getResponseWrapperClass(RuntimeModeler.java:304)<br/>        at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:699)<br/>        at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:623)<br/>        at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:412)<br/>        at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:251)<br/>        at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:323)<br/>        at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:189)<br/>        at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467)<br/>        at org.jboss.wsf.stack.metro.DeploymentDescriptorParserExt.parseAdapters(DeploymentDescriptorParserExt.java:295)<br/>        at org.jboss.wsf.stack.metro.DeploymentDescriptorParserExt.parse(DeploymentDescriptorParserExt.java:171)<br/>        at org.jboss.wsf.stack.metro.metadata.RuntimeModelDeploymentAspect.start(RuntimeModelDeploymentAspect.java:110)<br/>        ... 27 more<br/>Caused by: java.lang.IllegalArgumentException: value class au.com.finsyn.acuritywebservices.utils.MapAdapter<br/>        at com.sun.xml.ws.org.objectweb.asm.ClassWriter.newConstItem(ClassWriter.java:893)<br/>        at com.sun.xml.ws.org.objectweb.asm.AnnotationWriter.visit(AnnotationWriter.java:185)<br/>        at com.sun.xml.ws.model.WrapperBeanGenerator.createBeanImage(WrapperBeanGenerator.java:122)<br/>        at com.sun.xml.ws.model.WrapperBeanGenerator.createResponseWrapperBean(WrapperBeanGenerator.java:276)<br/>        ... 38 more<br/>09:09:30,946 WARN  [HDScanner] Failed to process changes<br/>org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>*** DEPLOYMENTS IN ERROR: Name -> Error</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/AcurityWebServices.war/ -> org.jboss.deployers.spi.DeploymentException: Error during deploy: vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/AcurityWebServices.war/</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><br/>DEPLOYMENTS IN ERROR:<br/>  Deployment "vfszip:/C:/jboss-5.1.0.GA/server/default/deploy/AcurityWebServices.war/" is in error due to the following reason(s): java.lang.IllegalArgumentException: value class au.com.finsyn.acuritywebservices.utils.MapAdapter</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)<br/>        at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)<br/>        at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)<br/>        at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)<br/>        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)<br/>        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)<br/>        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)<br/>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)<br/>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)<br/>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)<br/>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)<br/>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br/>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br/>        at java.lang.Thread.run(Thread.java:619)</p><p>{quote}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>And below are some code snippets:</p><p>{code}</p><p>@WebService()<br/>public class Member</p><p>{</p><p>    @WebMethod(operationName = "getMemberDetails")<br/>    @XmlJavaTypeAdapter(MapAdapter.class)<br/>    public Map<String, String> getMemberDetails(@WebParam(name = "fundCode") String MDz_Fund,<br/>            @WebParam(name = "memberCode") String MDz_Member)<br/>            throws AcurityWebServiceException<br/>    {<br/>        ...<br/>    }</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>public class MapAdapter extends XmlAdapter<MapElement[], Map<String, String>><br/>{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    @Override<br/>    public MapElement[] marshal(Map<String, String> map) throws Exception<br/>    {<br/>        MapElement[] mapElements = new MapElement[map.size()];</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        int i = 0;<br/>        for (Map.Entry<String, String> entry : map.entrySet())<br/>        {<br/>            mapElements[i++] = new MapElement(entry.getKey(), entry.getValue());<br/>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return mapElements;<br/>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    @Override<br/>    public Map<String, String> unmarshal(MapElement[] elementsList) throws Exception<br/>    {<br/>        Map<String, String> map = new HashMap<String, String>();<br/>        for (MapElement mapelement : elementsList)<br/>        {<br/>            map.put(mapelement.key, mapelement.value);<br/>        }<br/>        return map;<br/>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static class MapElement<br/>    {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        @XmlElement<br/>        public String key;<br/>        @XmlElement<br/>        public String value;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        private MapElement()<br/>        {<br/>        } //Required by JAXB</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        public MapElement(String key, String value)<br/>        {<br/>            this.key = key;<br/>            this.value = value;<br/>        }<br/>    }<br/>}</p><p>{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>So, what am I doing wrong? The above code works fine in glassfish. But not JBoss.</p><p>Can anyone help?</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/538876#538876">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Services Metro at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2045">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>