小编dur*_*dur的帖子

在Java中捕获块​​变量警告

我尝试将我的代码编译成没有错误,没有警告作为标准做法.但是,有一个恼人的警告,我知道如何处理.NET而不是Java.说我有这样的代码块:

    try {
        FileInputStream in = new FileInputStream(filename);
        return new Scanner(in).useDelimiter("\\A").next();
    } catch (FileNotFoundException ex) {
        LOG.log(Level.SEVERE, "Unable to load file: {0}", filename);
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个警告,ex即没有使用变量.现在,我真的没有用ex,我不想ex,但我不知道该怎么做.在.NET中,我可以做到:

catch (FileNotFoundException)
Run Code Online (Sandbox Code Playgroud)

没有变量,它将编译并运行没有错误.

如何在Java中处理这种情况?我知道我可以创建一个局部变量并将其设置为ex,但这似乎是一个愚蠢和浪费的解决方法来修复一个不是真正需要的警告.

java

13
推荐指数
3
解决办法
4969
查看次数

spring security - expiredUrl无效

我需要expired-url在我的Spring MVC应用程序中进行配置.这是我的努力,但没有效果:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .addFilterBefore(adminAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
        .addFilterBefore(customerAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
        .csrf()
            .disable()
        .authorizeRequests()
            .antMatchers("...", "...", "...").permitAll()
            .anyRequest().authenticated()
        .and()
            .formLogin()
                .loginPage("/admin/login")
        .and()
            .logout()
                .addLogoutHandler(customLogoutHandler())
                .logoutSuccessHandler(customLogoutSuccessHandler())
                .logoutUrl("/logout")
        .deleteCookies("remove")
        .invalidateHttpSession(true)
            .permitAll()
        .and()
        .sessionManagement()
            .maximumSessions(1)
            .expiredUrl("/expired");

}
Run Code Online (Sandbox Code Playgroud)

这没有任何效果,当用户的会话超时时,spring不会将他重定向到/expiredurl并只是将他重定向到/admin/loginurl.

更新:

我在评论和答案中尝试了建议的解决方案,但没有看到任何影响.我也删除了addLogoutHandler(),logoutSuccessHandler()两个addFilterBefore()在方法开始时,但没有工作.

我也用这种方式尝试了另一种解决方案:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .addFilterBefore(sessionManagementFilter(), SessionManagementFilter.class)
        .csrf()
            .disable()
        .authorizeRequests()
            .antMatchers("...", "...", "...").permitAll()
            .anyRequest().authenticated()
        .and()
            .formLogin()
                .loginPage("/admin/login")
        .and()
            .logout()
                .logoutUrl("/logout")
        .deleteCookies("remove")
        .invalidateHttpSession(true) …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc spring-security

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

在构建 Docker 镜像之前如何对 GitLab 的容器注册表进行身份验证?

我有一个私有的 GitLab 项目,其中包含用于构建和推送 Docker 映像的管道。因此我必须首先向 GitLab 的 Docker 注册表进行身份验证。

\n\n

研究

\n\n

我阅读了使用 GitLab CI/CD 对容器注册表进行身份验证

\n\n
\n

有三种方法可以通过 GitLab CI/CD 对容器注册表进行身份验证,具体取决于项目的可见性。

\n\n

适用于所有项目,但更适合公共项目:

\n\n
    \n
  • 使用特殊CI_REGISTRY_USER变量:为您创建此变量指定的用户,以便推送到连接到您的项目的注册表。它的密码是用CI_REGISTRY_PASSWORD变量自动设置的。这允许您自动构建和部署 Docker 映像,并具有对注册表的读/写访问权限。这是短暂的,因此它\xe2\x80\x99s 仅对一项作业有效。您可以按原样使用以下示例:

    \n\n
    docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n
    Run Code Online (Sandbox Code Playgroud)
  • \n
\n\n

对于私人和内部项目:

\n\n
    \n
  • 使用个人访问令牌:如果您的项目是私有的,您可以创建并使用个人访问令牌:

    \n\n
      \n
    • 对于读(拉)访问,范围应为read_registry.
    • \n
    • 对于读/写(拉/推)访问,请使用api.
    • \n
    \n\n

    替换以下示例中的<username>和:<access_token>

    \n\n
       docker login -u <username> -p <access_token> $CI_REGISTRY\n
    Run Code Online (Sandbox Code Playgroud)
  • \n
  • 使用 GitLab 部署令牌:您可以在您的私有项目中创建和使用特殊的部署令牌。它提供对注册表的只读(拉取)访问。创建后,您可以使用特殊的环境变量,GitLab …

docker gitlab-ci

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

Jaxb marshaller总是写xsi:nil(即使在@XmlElement(required = false,nillable = true)时)

我有一个带有注释的java属性@XmlElement(required=false, nillable=true).当对象被编组为xml时,它始终与xsi:nil="true"属性一起输出.

是否有一个jaxbcontext/marshaller选项来指示编组器不要编写元素,而不是用它来编写xsi:nil

我找了答案,这样也有一个看代码,AFAICS,它总是会写xsi:nil,如果nillable = true.我错过了什么吗?

jaxb marshalling xml-nil

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

阅读Socket中可用的内容而不会阻塞

我正在一个服务器上读取客户端发送的数据,但是大小不知道我也不能更改客户端发送大小.

我想从客户端读取数据,直到它阻塞并等待服务器的响应.我尝试过使用available(),它有时会起作用,但有时即使流中有一些数据,它也会返回零.

while((len = in.available()) != 0)
    in.read(b,0,len);
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java中这样做?我知道异步方法,但从未尝试过,所以如果有人可以提供一个简短的例子.

java

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

Git-svn - 导入完整的历史记录

问题

默认情况下,git svn clone仅从分支创建开始导入历史记录,尽管事实上,文件的历史记录在创建分支之前存在于SVN存储库中.

svn copy如果重要的话,我们的SVN分支是由我们创建的.

我的尝试

我试过--no-minimize-url--follow-parent,但没有成功.从分支创建开始,生成的Git存储库与没有这些参数的情况相同.

期望的结果

Git存储库,包含SVN存储库创建的完整历史记录.

更新

我的实际命令行是

git svn clone http://svnserver/repo/dir1/dir2/project
Run Code Online (Sandbox Code Playgroud)

-T结果命令的参数有什么帮助:

git svn clone http://svnserver/repo/ -T dir1/dir2/project
Run Code Online (Sandbox Code Playgroud)

svn git git-svn

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

成功登录后,Spring Boot重定向到当前页面

我在模态窗口中有登录表单.登录成功后,用户将被重定向到/页面.我正在尝试找到一种方法,以便在登录后留在联系页面或其他页面上.这该怎么做?我的代码是:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/css/**","/js/**","/fonts/**","/images/**","/home","/","/kontakt").permitAll()
            .antMatchers("/userlist").hasRole("ADMIN")
            .anyRequest().authenticated();
    http
        .formLogin()
            .loginPage("/login")
            .permitAll()
            .and()
        .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .logoutSuccessUrl("/");
}
Run Code Online (Sandbox Code Playgroud)

spring spring-security spring-boot

11
推荐指数
4
解决办法
2万
查看次数

Spring和@JsonView具有多个标识符

Spring @JsonView自版本4.1起支持.

@RestController使用@JsonView具有多个标识符的Spring控制器(带注释)方法注释我得到以下异常:

java.lang.IllegalArgumentException: @JsonView only supported for request body advice with exactly 1 class argument: org.springframework.web.method.HandlerMethod$HandlerMethodParameter@a566e37e
Run Code Online (Sandbox Code Playgroud)

显然,根据JsonViewResponseBodyAdviceJavadoc中符合下列条件:

请注意,尽管@JsonView允许指定多个类,但只有一个类参数才支持使用响应正文建议.考虑使用复合接口.

同样,当@RequestBody使用@JsonView具有多个标识符的控制器的方法参数(带注释)进行注释时; 根据JsonViewRequestBodyAdvice的Javadoc:

请注意,尽管@JsonView允许指定多个类,但只有一个类参数才支持使用请求体建议.考虑使用复合接口.

有人知道是否计划修复?我目前的Spring版本是4.2.4.

这对于为公共,私有(扩展公共),摘要和详细(扩展摘要)视图创建json视图,然后在控制器方法中组合它们非常有用!

spring spring-mvc jackson

11
推荐指数
1
解决办法
5256
查看次数

具有非空约束的 Mockito any 等价物

我正在编写最近几天的测试用例。我想知道是否有任何等效的org.mockito.Matchers.anywith not null 约束?

我的意思是如果你说:

when(reviewBuilder.saveReviewModel(any())).thenReturn(2L);
Run Code Online (Sandbox Code Playgroud)

然后saveReviewModel可以取任何对象,包括null. 有没有办法只将非空对象传递给使用 Mockito 1.10.19 库的方法?

java unit-testing mockito powermock

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

无法在Jenkins主机上指向〜/ .ssh中的ssh键

我已经安装了SSH Agent Plugin以使用ssh身份验证来提取git存储库.我想使用位于系统文件中的ssh键(来自Jenkins master~/.ssh选项).它是从官方插件页面截取的截图

官方插件页面的屏幕

不幸的是我没有看到这个选项.我只能选择"直接输入".请查看我的截图.

我的截图

我配置错了吗?

ssh-agent jenkins jenkins-plugins

11
推荐指数
1
解决办法
5088
查看次数