小编mar*_*kin的帖子

在没有JVM支持的情况下,如何在JVM语言中实现协同程序?

在阅读了Loom提案之后提出了这个问题,该提案描述了在Java编程语言中实现协同程序的方法.

特别是此提案表示,要在该语言中实现此功能,将需要额外的JVM支持.

据我所知,JVM上已经有多种语言可以将协同程序作为其功能集的一部分,例如Kotlin和Scala.

那么如何在没有额外支持的情况下实现此功能,如果没有它可以有效实施?

java jvm scala jvm-languages kotlin

50
推荐指数
2
解决办法
2528
查看次数

如何使用Mockito测试DAO方法?

我已经开始发现Mockito图书馆了,有一个问题,我找不到合适的答案.

如果我在UserDAO类中有这样的方法,可以将用户保存在数据库中:

public class UserDAO{
...
 public void create(User user) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet generatedKeys = null;
        try {

            connection = getConnection();
            pstmt = connection.prepareStatement(INSERT_USER,
                    PreparedStatement.RETURN_GENERATED_KEYS);
            int counter = 1;
            pstmt.setString(counter++, user.getFirstName());
            pstmt.setString(counter++, user.getLastName());
            pstmt.setString(counter++, user.getEmail());
            pstmt.setString(counter++, user.getPassword());
            pstmt.setString(counter++, user.getRole());
            pstmt.setString(counter, user.getLang());

            pstmt.execute();
            connection.commit();
            generatedKeys = pstmt.getGeneratedKeys();

            if (generatedKeys.next()) {
                user.setId(generatedKeys.getInt(Fields.GENERATED_KEY));
            }
        } catch (SQLException e) {
            rollback(connection);
            LOG.error("Can not create a user", e);
        } finally {
            close(connection);
            close(pstmt);
            close(generatedKeys);
        }
    }
  ....
} …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing dao mockito

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

Base64:java.lang.IllegalArgumentException:非法字符

我正在尝试在用户注册后发送确认电子邮件.我正在使用JavaMail库和Java 8 Base64 util类.

我正在以下列方式编码用户电子邮件:

byte[] encodedEmail = Base64.getUrlEncoder().encode(user.getEmail().getBytes(StandardCharsets.UTF_8));
Multipart multipart = new MimeMultipart();
InternetHeaders headers = new InternetHeaders();
headers.addHeader("Content-type", "text/html; charset=UTF-8");
String confirmLink = "Complete your registration by clicking on following"+ "\n<a href='" + confirmationURL + encodedEmail + "'>link</a>";
MimeBodyPart link = new MimeBodyPart(headers,
confirmLink.getBytes("UTF-8"));
multipart.addBodyPart(link);
Run Code Online (Sandbox Code Playgroud)

在哪里confirmationURL:

private final static String confirmationURL = "http://localhost:8080/project/controller?command=confirmRegistration&ID=";
Run Code Online (Sandbox Code Playgroud)

然后以这种方式在ConfirmRegistrationCommand中对此进行解码:

    String encryptedEmail = request.getParameter("ID");

    String decodedEmail = new String(Base64.getUrlDecoder().decode(encryptedEmail), StandardCharsets.UTF_8);

    RepositoryFactory repositoryFactory = RepositoryFactory
            .getFactoryByName(FactoryType.MYSQL_REPOSITORY_FACTORY);
    UserRepository userRepository = repositoryFactory.getUserRepository();
    User user = …
Run Code Online (Sandbox Code Playgroud)

java base64 registration jakarta-mail

22
推荐指数
3
解决办法
12万
查看次数

使用iframe嵌入视频网址时出现Chrome错误

当我使用iframe将一些url嵌入到页面中时,我在chrome控制台中遇到以下错误.为什么会这样?

GET chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js net::ERR_FAILEDfj @ www-embed-player-new.js:151ej @ www-embed-player-new.js:151dj @ www-embed-player-new.js:151ij @ www-embed-player-new.js:152gl @ www-embed-player-new.js:205so @ www-embed-player-new.js:301Dq @ www-embed-player-new.js:340(anonymous function) @ FQpUOimNvXA?showinfo=0:10
    www-embed-player-new.js:22

GET https://static.doubleclick.net/instream/ad_status.js net::ERR_BLOCKED_BY_CLIENTlc @ www-embed-player-new.js:22ic @ www-embed-player-new.js:21fc @ www-embed-player-new.js:21xd @ www-embed-player-new.js:35Dq @ www-embed-player-new.js:341(anonymous function) @ FQpUOimNvXA?showinfo=0:10
    www-embed-player-new.js:151

GET chrome-extension://dliochdbjfkdbacpmhlcpmleaejidimm/cast_sender.js net::ERR_FAILEDfj @ www-embed-player-new.js:151ej @ www-embed-player-new.js:151(anonymous function) @ www-embed-player-new.js:151c.onerror @ www-embed-player-new.js:151
    www-embed-player-new.js:151

GET chrome-extension://hfaagokkkhdbgiakmmlclaapfelnkoah/cast_sender.js net::ERR_FAILEDfj @ www-embed-player-new.js:151ej @ www-embed-player-new.js:151(anonymous function) @ www-embed-player-new.js:151c.onerror @ www-embed-player-new.js:151
    www-embed-player-new.js:151

GET chrome-extension://fmfcbgogabcbclcofgocippekhfcmgfj/cast_sender.js net::ERR_FAILEDfj @ www-embed-player-new.js:151ej @ www-embed-player-new.js:151(anonymous function) @ www-embed-player-new.js:151c.onerror @ www-embed-player-new.js:151
    www-embed-player-new.js:151 

GET chrome-extension://enhhojjnijigcajfphajepfemndkmdlo/cast_sender.js …
Run Code Online (Sandbox Code Playgroud)

browser iframe google-chrome google-chrome-extension

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

Git:git push -u origin origin:master

所以我在标题中列出了问题.

我想用git push -u origin master.

但如果输入这个命令,我会得到:

error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/myprofile/my_project.git'
Run Code Online (Sandbox Code Playgroud)

我搜索了这个问题(git:错误:src refspec master不匹配,src refspec master在git中提交提交时不匹配) - 但解决方案对我的情况没有帮助.

好像我只是忘了做一些初始提交到原始的远程分支,而是创建了另一个分支然后被使用.

这是从git ls-remote以下输出:

$ git ls-remote
From https://github.com/myprofile/my_project.git
152e795f054f6f756842bf61ee968ba3e5ee873d        HEAD
7d505dbf09585ecfbb239c2148337043b899cc13        refs/heads/add-mysql-repo
152e795f054f6f756842bf61ee968ba3e5ee873d        refs/heads/break-into-modules
e7905a3dacc9ea3e6c4c1f2dd9412f8deb692e30        refs/heads/master
Run Code Online (Sandbox Code Playgroud)

这是github图的网络窗口: my_project分支

所以总结起来-我应该怎么做才能正常使用git push -u origin master,而不是git push -u origin origin:master

编辑:

$ git branch -avv

  add-mysql-repo        7d505db add mysql case to switch …
Run Code Online (Sandbox Code Playgroud)

git version-control github

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

Maven无法执行目标org.apache.maven.plugins:maven-clean-plugin:2.5:clean无法删除access_log

我正在尝试使用maven和tomcat运行简单的struts项目.

当我试图超越下一个目标时:clean install tomcat7:run我得到MojoExecutionException:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean
(default-clean) on project myproject: Failed to clean project: Failed to delete
D:\EclipseWorkspace\myproject\target\tomcat\logs\access_log.2015-02-21
-> [Help 1]
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索并了解tomcat使用此access_log文件,他记录用户请求.当我想要执行上面列出的目标时,因为我正在使用Eclipse IDE,JVM拒绝删除此文件.

我看到了同样的问题:无法执行目标org.apache.maven.plugins:maven-clean-plugin:2.4.1,Maven - 无法执行目标org.apache.maven.plugins:maven-clean-plugin:2.4.1 :干净.

但是不明白这个问题的建议解决方案.

java eclipse tomcat maven

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

Gson:不是JSON对象

我将以下字符串传递给服务器:

{
    "productId": "",
    "sellPrice": "",
    "buyPrice": "",
    "quantity": "",
    "bodies": [
        {
            "productId": "1",
            "sellPrice": "5",
            "buyPrice": "2",
            "quantity": "5"
        },
        {
            "productId": "2",
            "sellPrice": "3",
            "buyPrice": "1",
            "quantity": "1"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是http://jsonlint.com/的有效json

我想获取body数组字段.

我就是这样做的:

Gson gson = new Gson();
JsonObject object = gson.toJsonTree(value).getAsJsonObject();
JsonArray jsonBodies = object.get("bodies").getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)

但在第二行我得到的例外情况如下:

HTTP Status 500 - Not a JSON Object: "{\"productId\":\"\",\"sellPrice\":\"\",\"buyPrice\":\"\",\"quantity\":\"\",\"bodies\":[{\"productId\":\"1\",\"sellPrice\":\"5\",\"buyPrice\":\"2\",\"quantity\":\"5\"},{\"productId\":\"2\",\"sellPrice\":\"3\",\"buyPrice\":\"1\",\"quantity\":\"1\"}]}"
Run Code Online (Sandbox Code Playgroud)

那怎么做呢?

java json gson

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

Java 8按条件收集两个列表进行映射

我有一个对象:

public class CurrencyItem {
    private CurrencyName name;
    private BigDecimal buy;
    private BigDecimal sale;
    private Date date;
    //...
}
Run Code Online (Sandbox Code Playgroud)

其中CurrencyName一个是:EUR,USD,RUR等.

还有两个清单

List<CurrencyItem> currenciesByCommercialBank = ...
List<CurrencyItem> currenciesByCentralBank = ...
Run Code Online (Sandbox Code Playgroud)

如何将此列表合并到Map<CurrencyItem, CurrencyItem>键所在的位置,currenciesByCommercialBank并将值currenciesByCentralBank与条件合并为

currenciesByCommercialBank.CurrencyName == currenciesByCentralBank.CurrencyName
Run Code Online (Sandbox Code Playgroud)

java collections java-8 java-stream

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

docker运行脚本,导出环境变量

我已经搜索了一些问题,例如docker ENV vs RUN export,它解释了这些命令之间的差异,但是并没有帮助解决我的问题。

例如,我有一个名为的脚本myscript

#!/bin/bash
export PLATFORM_HOME="$(pwd)"
Run Code Online (Sandbox Code Playgroud)

并在Dockerfile中包含以下几行:

...
COPY myscript.sh /
RUN ./myscript.sh
Run Code Online (Sandbox Code Playgroud)

我也尝试在调用脚本之前使用ENTRYPOINT而不是RUN或声明变量,所有这些都没有成功。

我要实现的目标是PLATFORM_HOME可以从其他以该基准为基础的Dockerfile引用。怎么做 ?

shell docker dockerfile

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

如何在Spring Java配置中创建Jcache?

我在使用spring cache abstraction设置jcache时遇到问题.

@Configuration
@EnableCaching
public class CacheConfig {

    @Bean(name = "caffeineCachingProvider")
    public CachingProvider caffeineCachingProvider() {
        return new CaffeineCachingProvider();
    }

    @Bean(name = "caffeineCacheManager")
    public JCacheCacheManager getSpringCacheManager() {
        CacheManager cacheManager = caffeineCachingProvider().getCacheManager();
        CaffeineConfiguration<String, List<Product>> caffeineConfiguration = new CaffeineConfiguration<>();
        caffeineConfiguration.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new AccessedExpiryPolicy(new Duration(TimeUnit.MINUTES, 60))));
        Cache<String, List<Product>> productCache = cacheManager.createCache("productCache", caffeineConfiguration);

        JCacheCacheManager jCacheCacheManager = new JCacheCacheManager(cacheManager);
        return jCacheCacheManager;
    }

} 
Run Code Online (Sandbox Code Playgroud)

我正在使用Caffein作为Jcache.我只是无法理解我做错了什么.你能解释一下如何正确地做到这一点吗?

我得到的是NPE在线cacheManager.createCache(...)

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'caffeineCacheManager' defined in com.myapp.spring.config.CacheConfig: Bean instantiation via factory method …
Run Code Online (Sandbox Code Playgroud)

java spring jcache spring-cache caffeine

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