如何使用Spring为JAX-RS测试客户端配置Json提供程序?

时间:2011-05-27 11:24:00

标签: spring junit client-side jax-rs

我已经使用Apache CXF设置了JAX-RS服务,我想使用Apache CXF JAX-RS'客户端API进行测试。服务器已配置为使用Jackson作为json提供程序。现在我想为客户端做同样的事情:就是让Jacson处理转换为json的转换。

不幸的是,我不确定如何“弹簧启用”测试,只有表面的Spring知识。我在测试中以编程方式设置了一个提供程序,但想知道如何通过Spring完成它。而不是

@BeforeClass
public static void setup() {
    ProviderFactory.getSharedInstance().registerUserProvider(new JacksonJsonProvider());
}

我想在springConfiguration.xml(或类似:)中设置它。在设置serverside时,springConfiguration.xml看起来像这样。

<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>

<jaxrs:server id="restContainer" address="/">
    <jaxrs:serviceBeans>
        <ref bean="echoService"/>
    </jaxrs:serviceBeans>

    <jaxrs:providers>
        <ref bean="jsonProvider" />
    </jaxrs:providers>

    <jaxrs:extensionMappings>
        <entry key="json" value="application/json"/>
    </jaxrs:extensionMappings>
</jaxrs:server>

我试图添加

<jaxrs:client id="restClient" >
    <jaxrs:providers>
        <ref bean="jsonProvider" />
    </jaxrs:providers>
</jaxrs:client>

到springConfiguration.xml,但是没有做任何事情。毫不奇怪,因为我没有设置我的JUnit测试来使用Spring ...有谁能告诉我如何做到这一点,或者指出我可以组装必要信息的任何好资源?

1 个答案:

答案 0 :(得分:1)

以下注释将在运行测试之前加载您的应用程序上下文。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"applicationContext.xml"}) 
public class JaxRsTest {

  @Autowired
  MyBean myBean

  public void testMyBean() {
    //add some real tests here...
    assertNotNull(myBean)
  }

}