以下にリストされている依存関係を持つ Maven プロジェクトがあります。
wink.version = 1.1.3-incubating and spring.version = 3.0.5.RELEASE
Spring のアプリケーション コンテキストには以下が含まれます。
<bean class="org.apache.wink.spring.Registrar">
<property name="classes">
<set value-type="java.lang.Class">
</set>
</property>
<property name="instances">
<set>
<ref local="restexample" />
</set>
</property>
</bean>
<bean id="restexample" class="com.example.rest.ExampleRest"></bean>
web.xml には以下が含まれます。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:META-INF/wink/wink-core-context.xml
classpath:applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>restServlet</servlet-name>
<servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>restServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Rest Java クラスには以下が含まれます。
@Path("/ex")
public class ExampleRest {
@GET
@Produces(MediaType.APPLICATION_JSON)
public String example() throws IOException {
return "{ 'id':'test' }";
}
}
ログを見ると、例外や問題は見られません。「restexample」Bean は作成されていますが、REST サービスを呼び出そうとすると404が返されます。
ExampleRestは Apache Wink によって登録されていないと思います。
何か案が ?
UPDATE 02/14 : ログを見ると、ExampleRest が Apache Wink によって登録されていないことに気付きました。おそらく、問題はBeanの宣言内にあるか、使用している依存関係にあるのでしょう。春のない別のプロジェクトもセットアップしましたが、そこで動作します。Daos とサービスに彼の IOD を使用するには、Spring が本当に必要です。