我正在编写一个bash脚本来自动化构建过程.有两个主要的构建块,一个是ant任务,一个是普通的mvn clean install.当这两个构建过程中出现构建错误时,我想要做一些事情.
问题是,这些构建将不时包含测试失败或错误,但最终结果是成功的.而且我相信这些进程返回的状态代码($?)应该为0,无论构建失败还是成功,我都错了.
那么,我的脚本检测最终结果(构建失败/成功)的最佳方法是什么,而不会在中间构建(测试错误等)期间捕获错误信息?
我正在创建一个带有访问管理(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浏览器中显示新内容?
我想创建一个副本,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对象?
我想从字符串列表中删除一个空字符串.
以下是我尝试使用流API的方法:
list.stream().filter(item-> item.isEmpty()).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
并且列表中仍然存在空字符串.我错过了什么?
我正在将我的 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) 我试图将名称为" key " 的参数传递给react组件,但它不起作用.如果我使用" keyy "而不是"key"那么它可以工作.
对我来说,"key"是一个受限制的关键字,我不能将它用作参数的名称.
真的吗?
这是我的例子:
render() {
<MyComponent key='apple'
keyy='pear'>
}
Run Code Online (Sandbox Code Playgroud) 我已经用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?
我有一个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)
有没有更好的方法来阅读身体内容?
我对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) 我一起使用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 ×6
java-8 ×2
jax-rs ×2
reactjs ×2
ant ×1
bash ×1
datetime ×1
fetch ×1
hibernate ×1
java-stream ×1
javascript ×1
jersey ×1
jersey-2.0 ×1
maven ×1
maven-2 ×1
maven-3 ×1
postgresql ×1
redirect ×1
request ×1
rest ×1
scripting ×1
sql ×1
swagger ×1
swagger-2.0 ×1
swagger-ui ×1
url ×1
vaadin ×1