2012-02-17 2 views
0

Привет, я разрабатываю веб-службу Spring -Jaxws с помощью JBOSS 5. Я использую «SimpleJaxWsServiceExporter» для развертывания службы. Конечной точкой моего обслуживания является:Служба Spring Jax-ws с JBOSS 5.1.0, предоставляющая исключение Introspection

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» несмотря на то, что ошибки не булево.

Не могли бы вы дать некоторое представление об этой проблеме? Любая помощь будет оценена по достоинству.

ответ

0

Я нашел решение проблемы. Это java-документ для SimpleJaxwsServiceExporter. «Обратите внимание, что этот экспортер будет работать только в том случае, если фактическое время выполнения JAX-WS поддерживает публикацию с аргументом адреса, то есть, если время выполнения JAX-WS отправляет внутренний HTTP-сервер. Это относится к времени выполнения JAX-WS , что включенный в JDK 1.6 Sun, но не с автономным JAX-WS 2.1 RI ».

Таким образом, реализация веб-сервиса SimpleJaxwsServiceExporter с использованием Spring будет работать на Tomcat, но не на JBoss, поскольку JBoss имеет собственную реализацию JAX-WS.

Итак, я развернул чистую веб-службу Jax-ws без поддержки весны, и это сработало.