标签: wildfly-8

ContainerResponseFilter无法正常工作

在带有REST服务的wildfly 8.1中,我想实现CORS ContainerRequestFilter和ContainerResponseFilter.

我的请求过滤器工作正常但ContainerResponseFilter从未加载或调用

package org.test.rest;

import java.io.IOException;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.container.PreMatching;
import javax.ws.rs.ext.Provider;

@Provider 
@PreMatching // <-- EDIT : This was my mistake ! DO NOT ADD THIS
public class CorsResponseFilter implements ContainerResponseFilter {
    public CorsResponseFilter() {
        System.out.println("CorsResponseFilter.init");
    }

    @Override
    public void filter(ContainerRequestContext req,
            ContainerResponseContext resp) throws IOException {
        System.out.println("CorsResponseFilter.filter");
        resp.getHeaders().add("Access-Control-Allow-Origin", "*");
        resp.getHeaders().add("Access-Control-Allow-Credentials", "true");
        resp.getHeaders().add("Access-Control-Allow-Methods",
                "GET, POST, DELETE, PUT");
        resp.getHeaders().add("Access-Control-Allow-Headers",
                "Content-Type, Accept");
    }

}
Run Code Online (Sandbox Code Playgroud)

这在我看来是一个Wildfly/resteasy bug.你有另一个想法/我错过了什么吗?

resteasy wildfly-8

7
推荐指数
1
解决办法
5029
查看次数

什么是Java EE 7属性文件配置的最佳实践建议?

应用程序配置在哪里属于现代Java EE应用程序?人们有什么最佳实践建议?

通过应用程序配置,我的意思是设置连接设置到其他盒子上的服务,包括外部服务(例如Twitter和我们的内部Cassandra服务器......用于诸如主机名,凭证,重试尝试之类的东西)以及与业务逻辑相关的东西(事物)一个人可能会被诱惑作为常量存储在类中,例如某些东西过期等等.

假设:

  1. 我们使用单个EAR文件部署到Java EE 7服务器(Wildfly 8.1),该文件包含多个战争和一个ejb-jar.
  2. 我们将部署到各种环境:单元测试,本地开发安装,基于云的UAT基础架构,压力测试和生产环境.我们的许多房产会因这些环境而异.
  3. 如果这是人们推荐的最佳实践,我们不反对将属性配置耦合到DI框架.
  4. 所有这些都是为了新的开发,所以我们不必遵守传统的要求或限制.我们非常关注当前的现代最佳实践.

配置是属于EAR的内部还是外部?

如果 EAR 之外,哪里以及如何最好地可靠地访问它们?

如果 EAR 内部,我们可以将它存储在类路径中的任何位置,以便在执行期间轻松访问.但是我们必须在每次配置更改时重新组装(并且可能重新构建).由于我们将拥有多个环境,因此我们需要一种方法来区分EAR中的文件.我在这里看到两个选项:

  1. 利用预期的文件名(例如cassandra.properties),然后构建多个环境特定的EAR(例如appxyz-PROD.ear).
  2. 构建一个EAR(例如appxyz.ear)并将所有各种环境配置文件放入其中,将环境变量附加到每个配置文件名(例如cassandra-PROD.properties).当然还要添加一个环境变量(对于vm或其他),以便代码知道要拾取哪个文件.

人们可以推荐哪些最佳实践来解决这一共同挑战?

谢谢.

java jboss dependency-injection java-ee wildfly-8

7
推荐指数
2
解决办法
4411
查看次数

WildFly的内存要求

我从来没有找到关于它的官方文档,我通常在至少4GB的服务器上安装WildFly 8.x.

我的服务器应该有多少内存才能运行WildFly实例?

是否有最低推荐值?

memory webserver jboss wildfly wildfly-8

7
推荐指数
1
解决办法
7800
查看次数

WildFly 8.2.0 - 与服务器的连接丢失

我在Windows 8.1上使用JDK 1.8u25尝试新版本的WildFly:8.2.0(我使用的是8.1.0)

所以我安装了wildfly,添加用户,将WildFly添加到NetBeans,转到管理控制台(在Firefox 34上),在运行时添加jdbc驱动程序,然后单击Configuration来设置数据源,但是有一个弹出窗口说"丢失了与服务器的连接",我重新开始,但问题仍然存在,我重新安装,问题仍然存在

每次我点击配置我都有弹出窗口:"丢失与服务器的连接"

wildfly wildfly-8

7
推荐指数
1
解决办法
4271
查看次数

在war libs中热部署资源

使用Wildfly 8.2.0.Final,Windows 7,JBoss Developer Studio 8.0.2.GA.

我们正在努力将战争分解为模块.似乎最自然的方法是依靠web片段+ JSF/Facelet能力在war/WEB-INF/lib jar中查找资源.
问题是对xhtml facelet模板和静态资源的更改不会动态应用,因为如果战争本身中存在相同的内容,就会发生这种情况.

据我所知,这是因为:

  • 片段jar由IDE打包部署,而不是爆炸;
  • VFS在tmp目录中创建一个jar副本,然后将其解压缩;
    "VFS3用户指南"说" 只要有可能,JavaZipFileSystem就会尝试使用JarEntry来支持文件系统操作.如果不可能,它会将JarEntry的副本写入临时目录 ".我不明白这个"什么时候不可能"意味着什么,并且逐步执行org.wildfly.extension.undertow.deployment.WarStructureDeploymentProcessor代码似乎总是制作一个jar副本.
  • org.jboss.vfs.spi.JavaZipFileSystem似乎试图观察jar的最后修改时间,但它看的是副本,而不是原始的; JBoss Developer Studio无论如何都不会改变原始jar的最后修改时间,例如更新xhtml时.

问题.

  1. 某处有虫子吗?VFS?暗流?我不确定所描述的行为是否有意.
  2. 战争库中的热部署资源是否应该被Wildfly支持?即它合理吗?
  3. 如何使用Wildfly 8.2.0.Final实现此功能?
    1. 替换Undertow的战争部署ResourceManager,以某种方式修改getResource?
    2. 对VFS.mounts做点什么?什么?
    3. 放弃这种方法.而是将这些war子模块放入到耳朵级别的EJB中,因此它们将被部署为爆炸式的.将这些"EJB"添加为战争部署资源根源,如WarStructureDeploymentProcessor.

eclipse jboss java-ee wildfly wildfly-8

7
推荐指数
1
解决办法
578
查看次数

在一个启用了Weld的EAR的单个传统WAR中使用Seam

我们使用Wildfly 8.2.0.Final,Maven 2.2.1,Seam 2.2.0.GA和Weld 2.2.6.Final.

我们有一个带有传统WAR,新WAR和一堆其他模块的EAR文件.传统的WAR依赖于Seam,但新的WAR和EAR中的其他模块依赖于Weld.

目前,只有传统的WAR正在运行,因为我们将Weld子系统排除在外,jboss-deployment-structure.xml直到我们能够以某种方式将Seam隔离到传统WAR.我们尝试从EAR中删除Seam并将其作为旧版WAR的依赖项向上移动,但这不起作用.要使用EJB,它似乎需要是EAR的依赖项,并ejbModule在maven-ear-plugin配置中定义为.

关于我们如何设置它的任何想法?

ear seam maven weld wildfly-8

7
推荐指数
1
解决办法
98
查看次数

如何激活Wildfly中的安全cookie?

我正在尝试在Wildfly(版本8.2)中为我的cookie添加安全标志.在servlet容器设置的文档页面中,您会发现"servlet-container"的子代是:

  1. JSP
  2. 持久会话
  3. 会话cookie的
  4. 的WebSockets

但是我只有jspwebsockets.如何访问会话cookie设置?如果我不能,如何将安全标志添加到我的cookie中?

更新:我无法访问战争中的web.xml文件,只能访问wildfly配置文件.

java cookies servlets wildfly wildfly-8

7
推荐指数
2
解决办法
1万
查看次数

Eclipse WildFly 8和Java 8中的MaxPermSize警告

我已经升级到WildFly 8.2.0JBoss 7Java 8Java 7.

我每次都停止serverEclipse这个警告中得到:

Java HotSpot(TM)64位服务器VM警告:忽略选项MaxPermSize = 256m; 支持在8.0中删除

如果我从CMD这里开始和停止服务器就没有这样的警告,就在这里Eclipse.我已从中删除了所有MaxPermSize设置WildFly,但在我的项目中找不到任何有关该设置的设置.它恰好发生在Eclipse.

我已经检查了这个问题:

哪里可以找到Eclipse-WildFly系统中的所有MaxPermSize?

Java HotSpot(TM)64位服务器VM警告:忽略选项MaxPermSize

使用IntelliJ或Play时,如何使"Java Hot Spot MaxPermSize"警告消失?

和这个页面

使用IntelliJ或Play时,如何使"Java Hot Spot MaxPermSize"警告消失?

java eclipse java-8 wildfly-8

7
推荐指数
1
解决办法
2万
查看次数

使用带有wildfly 8.2的resteasy 3.0.10进行自动扫描

我正在尝试用简单的restEasy 3.0.10应用程序设置新的Wildfly 8.2服务器时弄清楚我的问题.

我的网络应用程序非常容易.

src/main/
   java/my-package/
      RootApplication.java
      HomePageResource.java
   webapp/
      index.html
      WEB-INF/
         beans.xml
         web.xml
Run Code Online (Sandbox Code Playgroud)

web.xml和beans.xml看起来像这样

---- web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         metadata-complete="false">
</web-app>
---- beans.xml
<beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
      http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
Run Code Online (Sandbox Code Playgroud)

在RootApplication.java我有

@ApplicationPath("/app")
public class RootApplication extends Application
{
    private Set<Object> singletons = new HashSet<>();

    public RootApplication()
    {
        singletons.add(new HomePageResource());
    }

    @Override
    public Set<Object> getSingletons()
    {
        return singletons;
    }
}

// ResourceProvider is a simple class hiding getResource and createStreamer
@Path("/")
public class HomePageResource extends …
Run Code Online (Sandbox Code Playgroud)

java jax-rs resteasy maven wildfly-8

6
推荐指数
1
解决办法
7280
查看次数

如何跳过Maven插件父pom执行?

我有一个包含多个模块的父聚合器 POM。我build/pluginManagement在父模块中有一个,因为每个子模块的插件执行都是相同的。

如果我在每个子模块(mvn package)中执行它就可以正常工作。如果我在父模块中执行:mvn package -Pmytest,我想跳过父模块中的插件执行,所以我添加了:

    <plugin>
        <groupId>org.wildfly.plugins</groupId>
        <artifactId>wildfly-maven-plugin</artifactId>
        <configuration>
            <skip>true</skip>
        </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用。

父pom.xml:

<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xyz.jboss.config</groupId>
    <artifactId>jboss-config</artifactId>
    <packaging>pom</packaging>
    <version>1.2-SNAPSHOT</version>
    <name>jboss-config</name>
    <url>http://maven.apache.org</url>

    <profiles>
        <profile>
            <id>mytest</id>
            <modules>
                <module>jboss-system-properties</module>
                <module>jboss-security</module>
            </modules>
        </profile>
    </profiles>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>process-package</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${basedir}/processed/scripts</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${basedir}/src/main/resources/scripts</directory>
                                        <filtering>true</filtering>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                        <execution>
                            <id>process-clean</id>
                            <phase>clean</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${basedir}/processed/scripts</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${basedir}/src/main/resources/scripts</directory>
                                        <filtering>true</filtering>
                                    </resource>
                                </resources>
                            </configuration> …
Run Code Online (Sandbox Code Playgroud)

maven-plugin maven-3 maven wildfly wildfly-8

6
推荐指数
1
解决办法
7892
查看次数