调用ejb+Resteasy的rest服务报错:Could not find MessageBodyWriter

Could not find MessageBodyWriter for response object of type: java.util.ArrayList

解决办法:war包要包含提供rest服务的ejb LOCAL接口类

我的打包参考:

1、build.ejblocal.xml片段


		
			
				
				
				
				
			
		
	
说明:IHelloWorldLocal是ejb LOCAL接口,包含rest声明,类中有一个方法,返回值为List;Book是vo类。打包生成ejb-local.jar

2、build.ejbimpl.xml片段


		
			
				
				
				
			
		
	
说明:HelloWorldBean是IHelloWorldLocal的实现类。打包生成ejb-impl.jar。

jboss-deployment-structure.xml如下,声明了对ejb-local.jar的依赖



  

    
		
    
    
  

3、build.war.xml片段

        
		
			
				
				
				
				
			
		
	
说明:如果不包含,调用rest服务就会报上面的错误
web.xml中Resteasy的配置:

 	 
		resteasy.jndi.resources
		
			java:global/ejb-impl/HelloWorldBean!com.ejb.hello.IHelloWorldLocal
		
	
	 
		resteasy.servlet.mapping.prefix
		/rest
	

 	
		resteasy.scan
		true
	

	
		org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
	

	
		Resteasy
		org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
	
	
	
		Resteasy
		/rest/*
	
WEB-INF/jboss-deployment-structure.xml的配置:



  
    
		

		
		
    
  




你可能感兴趣的:(ejb,jboss,Resteasy)