私はこの質問はかなり古いものだと認識していますが、あなたの(そして現在の私の)苦境を分かち合う少数の貧しい人々には、いくつかの指摘があります(主にhttps://community.jboss.org/thread/192046) :
のJava EE Webサービス
まず、JBossの4.2.2を使用する可能性のJava EE5を使用することを意味します。 Webサービス(SEAM 2の有無にかかわらず)は、ステートレスセッションBeanの上にのみ作成できます。 Java EE 5のステートレスセッションBeanは、@ Localまたは@RemoteでアノテーションされたService Endpoint Interfaceを実装する必要があります。これはJava EE6ではオプションになっていますが、ここでも必須です。
ので:
@Local
public interface PluginHandlerInterface {
int processRequest(Account account);
}
@WebService
@Stateless
public PluginHandler implements PluginHandlerInterface { }
POJOのWebServiceの
継ぎ目に、あなたがウェブサービスとして定期的にPOJOを使用したい、場合は、あなたのクラスは、ハンドラチェーンを定義する別の特別な注釈を持たなければなりません:
@WebService
// This here makes all the difference!
@HandlerChain(file = "web-service-handler-chain.xml")
public class PluginHandler {
...
}
これは、あなたが/WEB-INF/classes/web-service-handler-chain.xmlに入れハンドラチェーンです:
<?xml version="1.0" encoding="UTF-8"?>
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
<handler-chain>
<handler>
<description>seam request handler</description>
<!-- probably not necessary
<handler-name>org.jboss.seam.webservice.SOAPRequestHandler</handler-name>
-->
<handler-class>org.jboss.seam.webservice.SOAPRequestHandler</handler-class>
</handler>
</handler-chain>
</handler-chains>
そして、あなたはそのようにwarファイルのweb.xmlにあなたのサービスクラスを発表する必要があります:注釈を追加し、にあなたのサービスを発表し、したがって、これらの三つのステップ
<listener> <!-- this might already be present in your web.xml -->
<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
<servlet> <!-- Which class is to be used? -->
<servlet-name>PluginHandler</servlet-name>
<servlet-class>your.package.name.PluginHandler</servlet-class>
</servlet>
<servlet-mapping>
<!-- you'll find it under http://localhost:8080/your-war/PluginHandler?wsdl-->
<servlet-name>PluginHandler</servlet-name>
<url-pattern>/PluginHandler</url-pattern>
</servlet-mapping>
を、ハンドラチェーンを作成しますweb.xmlは、SEAMであなたのためのトリックを行う必要があります:あなたはWebサービスとSEAM Contextを利用できます。