2012-02-17 29 views
0

嗨我正在開發一個使用JBOSS 5的Spring -Jaxws Web服務。我正在使用「SimpleJaxWsServiceExporter」來部署服務。我的服務終點是:使用JBOSS 5.1.0的Spring Jax-ws服務給自省異常

package com.pb.pts.spring.service;

@Component 
@WebService(serviceName="ParcelTrackingService") 
public class ParcelTrackingServiceEndpoint { 

@Autowired 
public ParcelTrackingService trackingService; 

@WebMethod 
public String createParcelDetails(ParcelDetails details) throws TrackingException{ 
return trackingService.createParcelDetails(details); 
} 

@WebMethod 
public ParcelTrackingData getParcelTrackingDetails(ParcelTrackingRequestData requestData) throws TrackingException{ 
return trackingService.getParcelTrackingDetails(requestDa ta); 
} 

} 

The TrackingException class is : 

public class TrackingException extends Exception { 
private TrackingError[] errors; 

public TrackingException() { 
super(); 
this.errors = null; 
} 

public TrackingError[] getErrors() { 
return errors; 
} 

public void setErrors(TrackingError[] errors) { 
this.errors = errors; 
} 

} 

我收到以下錯誤,而在JBoss部署:

org.jboss.ws.WSException: Property 'errors' not found in fault bean 'com.pb.pts.spring.service.jaxws.TrackingException Bean' 
at org.jboss.ws.metadata.umdm.FaultMetaData.initializ eFaultBean(FaultMetaData.java:282) 
at org.jboss.ws.metadata.umdm.FaultMetaData.eagerInit ialize(FaultMetaData.java:225) 
at org.jboss.ws.metadata.umdm.OperationMetaData.eager Initialize(OperationMetaData.java:468) 
at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerI nitializeOperations(EndpointMetaData.java:559) 
at org.jboss.ws.metadata.umdm.EndpointMetaData.initia lizeInternal(EndpointMetaData.java:543) 
at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerI nitialize(EndpointMetaData.java:533) 
at org.jboss.ws.metadata.umdm.ServiceMetaData.eagerIn itialize(ServiceMetaData.java:433) 
at org.jboss.ws.metadata.umdm.UnifiedMetaData.eagerIn itialize(UnifiedMetaData.java:194) 
at org.jboss.wsf.stack.jbws.EagerInitializeDeployment Aspect.start(EagerInitializeDeploymentAspect.java: 48) 
at org.jboss.wsf.framework.deployment.DeploymentAspec tManagerImpl.deploy(DeploymentAspectManagerImpl.ja va:129) 
at org.jboss.wsf.container.jboss50.deployer.ArchiveDe ployerHook.deploy(ArchiveDeployerHook.java:76) 
at org.jboss.wsf.container.jboss50.deployer.AbstractW ebServiceDeployer.internalDeploy(AbstractWebServic eDeployer.java:60) 
at org.jboss.deployers.spi.deployer.helpers.AbstractR ealDeployer.deploy(AbstractRealDeployer.java:55) 
at org.jboss.deployers.plugins.deployers.DeployerWrap per.deploy(DeployerWrapper.java:179) 
... 29 more 
Caused by: java.beans.IntrospectionException: Method not found: isErrors 
at java.beans.PropertyDescriptor.<init>(PropertyDescr iptor.java:89) 
at java.beans.PropertyDescriptor.<init>(PropertyDescr iptor.java:53) 
at org.jboss.ws.metadata.umdm.FaultMetaData.initializ eFaultBean(FaultMetaData.java:271) 

它說:「未找到方法:isErrors」的事實錯誤,不是布爾inspite。

您能否提供一些有關此問題的見解?任何幫助,將不勝感激。

回答

0

我找到了問題的解決方案..這是SimpleJaxwsServiceExporter的java文檔。 「請注意,如果JAX-WS運行時實際上支持使用地址參數發佈,即JAX-WS運行時 發佈了內部HTTP服務器,那麼此導出程序將僅工作.JAX-WS運行時 就是這種情況包括在Sun的JDK 1.6中,但不包括獨立的JAX-WS 2.1 RI。「

因此,使用Spring的SimpleJaxwsServiceExporter Web服務實現將在Tomcat上工作,但不在JBoss上,因爲JBoss擁有自己的JAX-WS實現。

因此,我部署了一個純粹的Jax-ws Web服務,沒有彈簧支持,並且工作正常。