簡體   English   中英

如何在WildFly中配置EJB WebServices(in ear)

[英]How to configure EJB WebServices in WildFly (in ear)

我有一個EAR項目,部署在WildFly 10.1.0.Final這個EAR包括一些罐子和戰爭。 我的jar文件中有一個WebService。

我無法清楚地知道如何配置我的項目。 我花了很多時間在谷歌和調試器......所以我需要幫助)

我的目標:在耳/服務器級別的JAR中為我的EJB WebService設置默認的AuthType / Security-domain。

對於Security-domain,我在以下位置找到了配置:

  • Standalone.xml - > subsystem xmlns =“urn:jboss:domain:ejb3:4.0(服務器級別,HIGHT優先級)標記:subsystem xmlns =”urn:jboss:domain:ejb3:4.0范圍:所有EJB

  • Standalone.xml - > subsystem xmlns =“urn:jboss:domain:undertow:3.0”(服務器級別,僅用於Undertow,HIGHT優先級)屬性:default-security-domain(服務器級別,中等優先級)范圍:所有Web服務

  • 在EAR META-INF中的jboss-app.xml(中優先級!)示例: https//developer.jboss.org/thread/177666范圍:所有EJB

  • EAR子jar項目中的XML文件jboss-ejb3.xml(低優先級) http://wildscribe.github.io/Wildfly/8.1.0.Final/subsystem/ejb3/index.html范圍:所有EJB

  • WebService上的安全域注釋類:注釋:org.jboss.security.SecurityDomain范圍:單個WebService

另外,我怎么能理解 - 對於ejb beans webservices而言,ejb屬性比webservices屬性更優先

但是我如何設置默認的auth metod BASIC? 沒有關於類的注釋。 我找不到(WEB-INF / web.xml和jboss-web.xml不影響我的webservice。

正在使用maven?

在此存儲庫https://github.com/wildfly/quickstart中,您可以找到許多用於在wildfly中部署的項目示例。 特別是對於使用ejb的Web服務,這個例子很有用https://github.com/wildfly/quickstart/tree/10.x/jaxws-ejb 請注意,在此項目中需要指示jboss-web.xml上的上下文根:

<jboss-web>
    <context-root>/yourpath</context-root>
</jboss-web>

並且使用注釋執行Web服務的配置。

/**
* @author rsearls@redhat@com
*/
@Stateless
@Remote(EJB3RemoteInterface.class)
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class EJB3Bean01 implements EJB3RemoteInterface {
    @WebMethod
    public String echo(String input) {
        return "EJB3Bean01 returning: " + input;
    }

}

web.xml中的屬性僅適用於war部署。 我發現只有一種方法可以使用webservices配置ejb jar部署(在一個地方用於所有endopoints和部署)。

眾所周知,WildFly使用Undertow 我們可以定義Servlet擴展http//undertow.io/undertow-docs/undertow-docs-1.2.0/#servlet-extensions

添加src / main / resources / META-INF / services / io.undertow.servlet.ServletExtension。 然后,在此文件中添加我們的UndertowDeploymentExtension(實現ServletExtension )。

然后,在handleDeployment方法中添加類似於: deploymentInfo.setLoginConfig (new LoginConfig(javax.servlet.http.HttpServletRequest.BASIC_AUTH,REALM_NAME));

現在,我們使用自定義LoginConfig初始化沒有LoginConfig的jar部署(我們可以省略@WebContext)。 有關更多信息,可以在WebMetaDataCreator.createLoginConfig上進行調試(wildfly-webservices-server-integration-10.1.0.Final.jar)

如需快速預覽: https//github.com/wildfly/wildfly/blob/master/webservices/server-integration/src/main/java/org/jboss/as/webservices/tomcat/WebMetaDataCreator.java#L276

此外,您可以從以下網址閱讀此建議: http//lists.jboss.org/pipermail/undertow-dev/2016-December/001801.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM