小编zap*_*pee的帖子

如何通过bash脚本检测ant/maven的构建错误?

我正在编写一个bash脚本来自动化构建过程.有两个主要的构建块,一个是ant任务,一个是普通的mvn clean install.当这两个构建过程中出现构建错误时,我想要做一些事情.

问题是,这些构建将不时包含测试失败或错误,但最终结果是成功的.而且我相信这些进程返回的状态代码($?)应该为0,无论构建失败还是成功,我都错了.

那么,我的脚本检测最终结果(构建失败/成功)的最佳方法是什么,而不会在中间构建(测试错误等)期间捕获错误信息?

ant bash scripting maven-2

44
推荐指数
4
解决办法
3万
查看次数

获取后调用后重定向

我正在创建一个带有访问管理(AM)服务器的社交登录页面.当用户单击登录按钮时,我会对AM服务器进行提取http调用.AM服务器生成带有auth cookie的HTTP 301重定向响应到社交登录页面.我需要以某种方式关注此重定向响应并在Web浏览器中显示新内容.

UI:ReactJS

请求:

POST /api/auth/socialauth/initiate HTTP/1.1
Host    example.com
User-Agent  Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0)
Accept  */*
Accept-Language en-US,en;q=0.5
Accept-Encoding gzip, deflate
origin  http://web.example.com:8080
Referer http://web.example.com:8080/myapp/login
Cookie  authId=...; NTID=...
Run Code Online (Sandbox Code Playgroud)

响应

HTTP/1.1 307 Temporary Redirect
https://www.facebook.com/dialog/oauth?client_id=...&scope=public_profile%2Cemail&redirect_uri=http%3A%2F%2Fam.example.com%3A8083%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=qtrwtidnwdpbft4ctj2e9mv3mjkifqo
Run Code Online (Sandbox Code Playgroud)

反应代码:

initiateSocialLogin() {
    var url = "/api/auth/socialauth/initiate";

    fetch(url, { method: 'POST' })
        .then(response => {
            // HTTP 301 response
            // HOW CAN I FOLLOW THE HTTP REDIRECT RESPONSE?
        })
        .catch(function(err) {
            console.info(err + " url: " + url);
        });
}
Run Code Online (Sandbox Code Playgroud)

我如何遵循重定向响应并在Web浏览器中显示新内容?

redirect fetch reactjs

21
推荐指数
4
解决办法
3万
查看次数

克隆java.time.LocalDateTime的最佳方法

我想创建一个副本,java.time.LocalDateTime但它没有clone()方法.

我所做的是以下内容:

long epochMilli = Instant.now().toEpochMilli();

LocalDateTime createDate =  LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());

LocalDateTime modificationDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
Run Code Online (Sandbox Code Playgroud)

有没有最简单的方法来创建具有完全相同的日期时间值的两个LocalDateTime对象?

java datetime java-8

13
推荐指数
2
解决办法
5910
查看次数

Java 8 - 从List中过滤空字符串不起作用

我想从字符串列表中删除一个空字符串.

以下是我尝试使用流API的方法:

list.stream().filter(item-> item.isEmpty()).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

并且列表中仍然存在空字符串.我错过了什么?

java java-8 java-stream

10
推荐指数
3
解决办法
2万
查看次数

使用 Maven 配置 swagger-ui

我正在将我的 JAX-RS REST 项目与 Swagger 集成。我阅读了许多文档和教程,我最喜欢的图如下(感谢Philipp Hauer 的博客):

在此处输入图片说明

该图像帮助我了解 Swagger 的工作原理。

在了解 Swagger 的工作原理后,我修改了我的pom.xml.

swagger-jersey2-jaxrs向我的项目添加了依赖项,这使我能够使用此处描述的与 swagger 相关的注释:

<!-- for Swagger-Core Annotations -->
<dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-jersey2-jaxrs</artifactId>
    <version>1.5.13</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

重要提示:我无法使用最新的 1.15.18 swagger-jersey2-jaxrs 依赖项,因为属于此依赖项的番石榴库在最新的 (v5.181) Payara应用程序服务器上造成了严重的类加载器问题:

  Exception Occurred :Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;. Please see server.log for more details. ]]
Run Code Online (Sandbox Code Playgroud)

无论如何,将以下插件添加到我的 pom.xml 以及下载swagger-ui部分并将其解压缩到 maven 目标文件夹:

<plugin>
    <groupId>com.googlecode.maven-download-plugin</groupId>
    <artifactId>download-maven-plugin</artifactId>
    <version>1.4.0</version> …
Run Code Online (Sandbox Code Playgroud)

java jax-rs swagger swagger-ui swagger-2.0

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

传递"key"参数来反应组件

我试图将名称为" key " 的参数传递给react组件,但它不起作用.如果我使用" keyy "而不是"key"那么它可以工作.

对我来说,"key"是一个受限制的关键字,我不能将它用作参数的名称.

真的吗?

这是我的例子:

render() {
   <MyComponent key='apple'
                keyy='pear'>
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

9
推荐指数
2
解决办法
6887
查看次数

Hibernate + PostgreSQL +网络地址类型(inet,cdir)

我已经用Hibernate 4.2.7和PostgreSQL 9.3.1开始了我的示例项目,一切进展顺利.

目前我想使用INET PostgreSQL类型,但我无法用Hibernate映射它.

我得到了这个hibernate错误:无法确定类型:inet,在表:DEVICE_IP_ADDRESS,对于列...

我使用org.hibernate.dialect.PostgreSQLDialect和hbm.xml配置文件.

我的hibernate映射文件:

<property name="ipAddress" type="inet">
     <column name="IP_ADDRESS" not-null="true" />
</property>
Run Code Online (Sandbox Code Playgroud)

我问谷歌,但我找不到任何有用的解决方案.你可以帮帮我吗?

谢谢!

编辑:如果我想使用'额外'postgresql类型和PostGIS类型,我认为我需要使用什么样的ORM实现?

或者我需要使用简单的JDBC?

java sql postgresql hibernate

8
推荐指数
2
解决办法
5392
查看次数

读两次JAX-RS主体InputStream

我有一个JAX-RS日志记录过滤器来记录请求和响应详细信息,如下所示:

public class LoggingFilter implements ContainerRequestFilter, ContainerResponseFilter {
    @Override
    public void filter(final ContainerRequestContext requestContext) throws IOException {
        ...
        String body = getBody(request);           
        ...
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("request: {}", httpRequest);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

getBody()方法从中读取正文内容,InputStream但我需要做一些技巧,因为我无法重置此流.没有这个小技巧我的休息方法总是收到空的请求正文内容:

private String getBody(final ContainerRequestContext requestContext) {
    try {
        byte[] body = IOUtils.toByteArray(requestContext.getEntityStream());

        InputStream stream = new ByteArrayInputStream(body);
        requestContext.setEntityStream(stream);

        return new String(body);
    } catch (IOException e) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来阅读身体内容?

java rest jax-rs jersey jersey-2.0

8
推荐指数
1
解决办法
1374
查看次数

vaadin 7 URL参数

我对vaadin 7不太熟悉,我无法弄清楚这一点.我试图使用谷歌但没有有用的结果.

我的问题很简单.如何在UI类中获取请求url参数?

我的网址有一个参数: host/myvaadinapp/?code=erefdvdfgftf...

url参数来自用户登录后的Facebook(OAuth),我需要在我的代码中处理代码url参数的值.

我试着这样做:

    @PreserveOnRefresh
    public class AdminUi extends UI
    {
        @Override
        protected void init(VaadinRequest request)
        {
            ...
            System.out.println( request.getPathInfo());
            System.out.println( request.getRemoteHost());
            System.out.println( request.getParameterMap().size());
            System.out.println( request.getAttribute("code") );
            System.out.println( request.getParameter("code") );
            ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

结果:request.getAttribute("code"):null request.getParameter("code"):null

我意识到getParameterMap()有一个"v-loc"参数.但是如果我使用它变量,我必须编写一些代码来从这个变量中获取url参数:

v-loc:host/myvaadinapp/?code=erefdvdfgftf... 主题:驯鹿v-rtzo:-600 v-dston:false ...

我认为,这不是太好的解决方案.

你能帮我解决一下如何在vaadin中获取原始url参数?

谢谢.


我的评论是:

我试图使用request.getParameter("code"),但它无法正常工作.我不知道为什么.

我原来的网址是: host/demoVaadinApp/?name=zzz

我用过这段代码:

    public class Xxxx extends UI
    {
        /**
     * Main UI
     */
    @Override
    protected void init(VaadinRequest request)
    {
        String name = request.getParameter("name");
        if (name == null)
            {
            name = …
Run Code Online (Sandbox Code Playgroud)

url request vaadin

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

在maven-surefire-plugin中附加argLine参数的值

我一起使用maven-surefire-plugin+ Sonar,我想argLine为maven-surefire-plugin的参数添加一些额外的值。

所以我做到了:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
            <configuration>
                <argLine>-DCRR.Webservice.isSimulated=true -D...</argLine>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我将覆盖argLine参数的原始值,Sonar不会生成jacoco.exec文件。

我可以在Maven调试日志(-X)中看到argLine参数的值是,而没有覆盖它的值-javaagent:/opt/jenkins/.../myproject-SONAR/.repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runtime.jar=destfile=/opt/jenkins/.../myproject-SONAR/target/jacoco.exec

追加此参数原始值的正确方法是什么(保留原始值+添加其他值)?

我正在使用Apache Maven 3.5.0,Java版本:1.8.0_131,供应商:Oracle Corporation。

java maven-3 maven maven-surefire-plugin

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