Comments (4)
Hey Brandon, from the stacktrace you posted it looks like the issue is this constructor, which has no arguments but is annotated with @Inject
(which spring considers the same as @Autowired
). This constructor was added to make the class work with Guice, but since this seems to break Spring compatibility and there is another Guice workaround that can be used, so I went ahead and removed the constructor. I released this change as part of version 0.7.2 which should show up in Maven central soon. Can you try out 0.7.2 and let me know if you still run into any issues? (Just a note, you shouldn't need to explicitly create a JacksonJsonProvider
if you don't need to customize it, also the class should be com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
, org.codehaus
is from Jackson 1 which is very old now)
from jackson-jaxrs-propertyfiltering.
- I have it working perfectly with Jersey once I removed every reference to CXF.
- In my CXF/Spring service:
-- web.xml --
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
-- beans.xml --
```
<jaxrs:server id="restContainer" address="/">
<jaxrs:serviceBeans>
<ref bean="welcomeServiceImpl"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="propertyFilteringMessageBodyWriter"/>
</jaxrs:providers>
</jaxrs:server>
<!-- USED TO RETURN ONLY FIELDS OF THE QUERY STRING -->
<bean id="propertyFilteringMessageBodyWriter" class="com.hubspot.jackson.jaxrs.PropertyFilteringMessageBodyWriter">
</bean>
# -- implementation --
```
@Service
@Path( "/" )
@Consumes()
@Produces( javax.ws.rs.core.MediaType.APPLICATION_JSON )
public class WelcomeServiceImpl implements WelcomeService
{
public welcomeServiceImpl()
{
ms = ini.init();
}
@GET
@Path( "/welcome/{id}/")
@PropertyFiltering
@Produces( javax.ws.rs.core.MediaType.APPLICATION_JSON )
public Response getWelcome( @PathParam( "id" ) String id )
{
Welcome welcome = new Welcome();
welcome.setId("727127");
welcome.setName("Nombre");
String str = ( "{a: \"a\", b: \"b\"}" );
return Response.ok( welcome, javax.ws.rs.core.MediaType.APPLICATION_JSON )
.header( "Access-Control-Allow-Origin","*" )
.header( "Access-Control-Allow-Methods","GET" )
.status( 200 )
.build();
}
-- Result --
Feb 03, 2016 8:14:40 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
WARNING: Interceptor for {http://impl.service.propertyfilteringdemo.project.com/}welcomeServiceImpl has thrown exception, unwinding now
java.lang.NullPointerException
at com.hubspot.jackson.jaxrs.PropertyFilteringMessageBodyWriter.getJsonProvider(PropertyFilteringMessageBodyWriter.java:156)
at com.hubspot.jackson.jaxrs.PropertyFilteringMessageBodyWriter.isWriteable(PropertyFilteringMessageBodyWriter.java:53)
at org.apache.cxf.jaxrs.provider.ProviderFactory.matchesWriterCriterias(ProviderFactory.java:728)
at org.apache.cxf.jaxrs.provider.ProviderFactory.chooseMessageWriter(ProviderFactory.java:693)
at org.apache.cxf.jaxrs.provider.ProviderFactory.createMessageBodyWriter(ProviderFactory.java:439)
at org.apache.cxf.jaxrs.provider.ProviderFactory.createMessageBodyWriterInterceptor(ProviderFactory.java:375)
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:223)
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:117)
at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:80)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:197)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:290)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:214)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
from jackson-jaxrs-propertyfiltering.
Thanks for the detailed information! I'll try running your code and see if I can figure out what's going on
from jackson-jaxrs-propertyfiltering.
I can confirm that JacksonJsonProvider(delegate) can't be resolved with CXF implementation.
from jackson-jaxrs-propertyfiltering.
Related Issues (6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jackson-jaxrs-propertyfiltering.