2016-09-27 22 views
1

我有一個EAR項目,部署在WildFly 10.1.0.Final 這個EAR包含一些jar和wars。我在我的jar文件中有一個WebService。如何在WildFly中配置EJB WebServices(in ear)

我不明白如何配置我的項目。 我花了大量的時間在谷歌和調試器...所以我需要幫助)

我的目標:在耳/服務器級別爲我的EJB WebService在JAR中設置默認的AuthType /安全域。

對於安全域我發現配置在:

  • Standalone.xml - >子系統的xmlns =「甕:JBoss的:域:EJB3:4.0(服務器級別,優先HIGHT) 標籤:子系統的xmlns = 「甕:JBoss的:域名:EJB3:4.0 範圍:所有EJB

  • Standalone.xml - >子系統的xmlns =」 金塔:JBoss的:域名:暗流:3.0" (服務器級別,只爲暗潮,HIGHT優先) 屬性:default-security-domain(服務器級別,中等優先級) scope:全部Web服務

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

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

  • 安全域註釋上WebService類: 註釋:org.jboss.security.SecurityDomain 範圍:單WebService的

此外,我怎麼能明白 - EJB性能更優先爲EJB豆web服務web服務相比性能

但是如何設置缺省auth梅託德BASIC?沒有課堂上的註釋。我找不到( WEB-INF/web.xml文件和jboss-web.xml中不要在我的web服務的影響。

+0

嘗試使用'jboss-webservices.xml'描述符。請參閱https://docs.jboss.org/author/display/JBWS/Advanced+User+Guide#AdvancedUserGuide-配置通過部署描述符或 –

+0

哪裏是一減,我們從webservices模式獲得: 我不能在這個地方使用通配符。定義所有ejb webservices對我們來說是非常多餘的。 但是,這個例子謝謝你,因爲有人可以嘗試這個解決方案。 我在等待其他建議。 – JaVanna

回答

0

屬性。 我發現只有一種方法來配置web服務的ejb jar部署(在所有內容和部署的一個地方)。

我們知道,WildFly使用Undertow。 我們可以定義Servlet的擴展http://undertow.io/undertow-docs/undertow-docs-1.2.0/#servlet-extensions

添加的src /主/資源/ META-INF /服務/ io.undertow.servlet.ServletExtension。 然後,在此文件中添加我們的UndertowDeploymentExtension(實現ServletExtension)。

然後,添加在handleDeployment方法是這樣的: deploymentInfo.setLoginConfig(新LoginConfig(javax.servlet.http.HttpServletRequest.BASIC_AUTH,REALM_NAME));

現在,我們的沒有LoginConfig的jar部署將使用我們自定義的LoginConfig進行初始化(我們可以省略@WebContext)。 https://github.com/wildfly/wildfly/blob/master/webservices/server-integration/src/main/java/org/jboss/as/webservices/tomcat/WebMetaDataCreator.java#L276

此外,您還可以閱讀這個建議: 欲瞭解更多信息,您可以在WebMetaDataCreator.createLoginConfig(wildfly-web服務,服務器整合,10.1.0.Final.jar)

對於快速預覽調試來自:http://lists.jboss.org/pipermail/undertow-dev/2016-December/001801.html

0

是使用maven?

在這個倉庫https://github.com/wildfly/quickstart你可以找到大量的工程實例對於使用EJB這個例子是有用的https://github.com/wildfly/quickstart/tree/10.x/jaxws-ejb在wildfly部署專門針對Web服務需要注意的是在這個項目中是necesary表明在JBoss-web.xml中的上下文根:。

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

而且他對Web服務的配置進行與註釋。

/** 
* @author [email protected]@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工作