WebServices中的输入和输出参数

问题描述:

我在ServiceEndPointInterface(SEI)中使用输入和输出参数。 这里是方法签名。WebServices中的输入和输出参数

import javax.jws.WebMethod; 
import javax.jws.WebParam; 
import javax.jws.WebResult; 
import javax.jws.WebService; 
import javax.jws.WebParam.Mode; 
import javax.jws.Oneway; 
import javax.xml.rpc.holders.*; 

@WebMethod 
@Oneway 
public @WebResult void TestDomainCls(@WebParam (mode=Mode.INOUT) IntegerWrapperHolder inpuInt); 

我在EJBBean中实现了这个方法。我已经将这个EJBBean公开为使用注释的web服务。

虽然JBOSS 5.部署此EAR,它抛出的错误,如

Caused by: java.lang.IllegalStateException: 
Cannot synchronize to any of these methods: 
public abstract java.lang.String MURCOMP.MURCOMP_SEI.serv_20_search1(java.lang.String,javax.xml.rpc.holders.StringHolder) 

OperationMetaData: 
qname={http://MURCOMP/}serv_20_search1 
javaName=serv_20_search1 
style=rpc/literal 
oneWay=false 
soapAction= 
ParameterMetaData: 
xmlName=arg0 
partName=arg0 
xmlType={http://www.w3.org/2001/XMLSchema}string 
javaType=java.lang.String 
mode=IN 
inHeader=false 
index=0 
ParameterMetaData: 
xmlName=arg1 
partName=arg1 
xmlType={http://www.w3.org/2001/XMLSchema}anyType 
javaType=java.lang.Object 
mode=OUT 
inHeader=false 
index=1 
ReturnMetaData: 
xmlName=return 
partName=return 
xmlType={http://www.w3.org/2001/XMLSchema}string 
javaType=java.lang.String 
mode=OUT 
inHeader=false 
index=-1 
at org.jboss.ws.metadata.umdm.OperationMetaData.eagerInitialize(OperationMetaData.java:491) 
    at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeOperations(EndpointMetaData.java:559) 
    at org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:543) 
    at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:533) 
    at org.jboss.ws.metadata.umdm.ServiceMetaData.eagerInitialize(ServiceMetaData.java:433) 
    at org.jboss.ws.metadata.umdm.UnifiedMetaData.eagerInitialize(UnifiedMetaData.java:194) 
    at org.jboss.wsf.stack.jbws.EagerInitializeDeploymentAspect.start(EagerInitializeDeploymentAspect.java:48) 
    at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129) 
    at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76) 
    at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60) 
    at org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerEJB.internalDeploy(WebServiceDeployerEJB.java:113) 
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) 
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) 
    ... 30 more 
17:40:12,483 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS): 

此错误是只来了,如果我使用INOUT或OUT在我的方法的参数。

任何人都可以给我建议,我要去哪里错了或者有什么Web服务相对于INOUT和OUT参数丢失

enter code here 

我已经得到了解决,我用的javax。 xml.ws.Holder而不是javax.xml.rpc.holders。 代码如下 @WebMethod public @WebResult String testINout(@WebParam Holder holder);

但我没有得到实际的解决方案,为什么如果我使用javax.xml.rpc.holders这种异常已经发生。无论如何,我发现工作的替代方式..