小编Dev*_*Dio的帖子

导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\Portable\Microsoft.Portable.CSharp.targets"未找到

编译时,我收到此错误

The imported project "C:\Program Files (x86)\MSBuild\Microsoft\Portable\Microsoft.Portable.CSharp.targets" was not found.

如果我发表评论,我明白了

The <TargetFrameworkIdentifier> for a portable project must be .NETPortable.

有什么想法是什么?应该去哪里?

另外,奇怪的是,第一个错误中的Portable目录甚至不存在于我的硬盘驱动器上.有谁知道如何把它放回去?这也在我的主PC上......

任何版本的VS(13和15)都会出现这种情况,我甚至已经卸载并重新安装了VS.

VS安装日志还表明它无法找到Portable类来更新它,然后无法更新它.我以为这与Portable目录缺失直接相关.还有其他原因吗?我将尝试获取失败的安装程序日志.

看了一下日志文件,看来我有注册表问题.

Set_Warning: PkgDef encountered data collision in section &apos;HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\NewProjectTemplates\TemplateDirs\{fe426dcb-ff5c-44a9-b84d-24cf031ba095}\/1&apos; for value &apos;&apos; Source="VisualStudio"

谢谢

.net msbuild portable-class-library visual-studio-2013

10
推荐指数
0
解决办法
1514
查看次数

如何使用JpaRepository和对象的嵌套列表进行搜索?

描述

PersonRepositoryPerson实体, Person类包含List<Qualification>Qualification该类有3个简单字段。

我尝试@Query在自定义方法上添加注释,并使用JPQL来获取结果,但是QualificationJPQL中无法使用类字段进行操作,因为它的存储库本身包含List<Qualification>而不是的简单字段Qualification

如何通过这些“资格”的嵌套字段进行搜索?

询问

现在,我需要查找资格证书的experienceInMonths大于3且小于9并且资格证书的名称字段='java'的人员实体列表。

人.java

@Data
@Entity
public class Person {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;

@NotEmpty
@Size(min = 2)
private String name;

@NotEmpty
@Size(min = 2)
private String surname;

@ElementCollection(targetClass = java.util.ArrayList.class, fetch = FetchType.EAGER)
private List<Qualification> qualifications = new ArrayList<>();

}
Run Code Online (Sandbox Code Playgroud)

PersonRepository.java

@Repository
public interface PersonRepository extends JpaRepository<Person, String> {
}
Run Code Online (Sandbox Code Playgroud)

Qualification.java

@Data
@AllArgsConstructor
public …
Run Code Online (Sandbox Code Playgroud)

java jpa spring-data spring-boot

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

如何使用 Keycloak Admin Java API 验证旧密码?

我有使用 Keycloak 3.1.x 的应用程序,该应用程序使用以下依赖项与 Keycloak 远程交互:

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>3.4.1.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

该应用程序使用 Spring Boot,在 Controller 中我们得到两个参数:

  1. 旧密码
  2. 新密码

现在在后端,我们必须验证旧密码是否与存储在 Keycloak 中的密码匹配,然后最终应用新密码。

我知道有一个端点/auth/admin/{realm}/account允许用户更改他的密码,但我需要后端的功能。

The dependency uses RestClient under the hood and from what I found in https://issues.jboss.org/browse/KEYCLOAK-943, the Keycloak does not provide REST API for the account console.

Does anybody know if it is possible to validate the old password from the Keycloak Admin API?

EDIT:

Maybe there is a way of getting user's old password and trying …

java security spring spring-boot keycloak

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

使用jUnit和Mockito进行外部REST API调用的单元测试

我正在Spring Boot Java应用程序中为服务类构建单元测试.

服务类对返回JSON响应的REST API服务进行外部调用.我正在用Mockito嘲笑这个电话.我在mockserver响应中硬编码JSON.

这是一种不好的做法,在单元测试中使用硬编码的JSON吗?如果JSON结构发生变化,那么测试失败就是我的推理.有没有更好的,最好的做法在哪里这样做?

下面的示例代码段:

实际的代码是实用的,我只是编辑了这个片段,为了简洁起见,所以如果您发现任何错误,请发表评论:

    public class UserServiceTest extends TestCase {

    private static final String MOCK_URL = "baseUrl";
    private static final String DEFAULT_USER_ID = "353";

    UserService classUnderTest;
    ResponseEntity<Customer> mockResponseEntity;
    MockRestServiceServer mockServer;
    @Mock
    RestTemplate mockRestTemplate;

    public void setUp() throws Exception {
        super.setUp();

        classUnderTest = new UserRestService();
        mockRestTemplate = new RestTemplate();
        mockServer = MockRestServiceServer.createServer(mockRestTemplate);

        ReflectionTestUtils.setField(classUnderTest, "restTemplate",
                mockRestTemplate);
        ReflectionTestUtils.setField(classUnderTest, "userSvcUrl",
                MOCK_URL);
    }

    public void testGetUserById() throws Exception {

        mockServer.expect(requestTo(MOCK_URL + "/Users/" + DEFAULT_USER_ID)).andExpect(method(HttpMethod.GET))
                .andRespond(withSuccess(
                        "{\n" +
                                "    \"UserCredentials\": {\n" + …
Run Code Online (Sandbox Code Playgroud)

java junit spring unit-testing mockito

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

是否必须将内部try-with-resources或其中一个try-with-resources中的所有内容自动关闭?

是否必须将内部try-with-resources或其中一个try-with-resources中的所有内容自动关闭?

    try (BasicDataSource ds = BasicDataSourceFactory.createDataSource(dsProperties)) {

        // still necessary for Connection to close if inside
        // try-with-resources?
        try (Connection conn = ds.getConnection()) {

            String sql = "SELECT * FROM users";
            try (PreparedStatement stmt = conn.prepareStatement(sql)) {

                try (ResultSet rs = stmt.executeQuery()) {

                    while (rs.next()) {
                        System.out.println(rs.getString("email"));
                        System.out.println(rs.getString("password"));
                    }

                }
            }

        }

    } catch (SQLException e) {

        e.printStackTrace();
    } catch (Exception e) {

        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

java datasource try-with-resources

5
推荐指数
1
解决办法
74
查看次数

split()方法如何在java中工作?

我的问题是为什么以下程序:

// Java program to demonstrate working of split(regex,
// limit) with high limit.
public class GFG
{
    public static void main(String args[])
    {
        String str = "geekss@for@geekss";
        String [] arrOfStr = str.split("s", 5);
    }
}
Run Code Online (Sandbox Code Playgroud)

将字符串拆分"geekss@for@geekss"为5个子串:{"geek", "", "@for@geek", "", ""}.据我说,应该有4个子串:{"geek", "","@for@geek", ""}.有人可以澄清我的怀疑吗?

java string split

5
推荐指数
1
解决办法
380
查看次数