小编Ant*_*neB的帖子

java howto ArrayList push,pop,shift和unshift

我已经确定Java ArrayList.add类似于JavaScriptArray.push

我一直在寻找ArrayList类似于以下的功能

  • Array.pop
  • Array.shift
  • Array.unshift 我倾向于 ArrayList.remove[At]

java arraylist

74
推荐指数
4
解决办法
14万
查看次数

SpringBoot + ActiveMQ - 如何设置可信包?

我正在创建两个使用JMS进行通信的springboot服务器和客户端应用程序,并且5.12.1activemq 的发布一切正常,但是一旦我更新到5.12.3版本,我就会收到以下错误:

org.springframework.jms.support.converter.MessageConversionException: Could not convert JMS message; nested exception is javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class MyClass! This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.
Run Code Online (Sandbox Code Playgroud)

我继续提供的URL,我发现我的问题与5.12.2ActiveMQ发布中实现的新安全性有关,我知道我可以通过定义可信包来修复它,但我不知道在哪里可以把这样的配置放在我的SpringBoot项目中.

我在客户端和服务器中对JMS队列的唯一引用是在application.properties中设置它的URI并在我的"main"类上启用JMS @EnableJms,这是我在单独的代理上的配置:

@Configuration
@ConfigurationProperties(prefix = "activemq")
public class BrokerConfiguration {

    /**
     * Defaults to TCP …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic spring-boot

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

Docker - 在不同网站的主机和容器上运行Apache

我想使用Docker,以便能够运行需要PHP 5.3的旧应用程序,同时仍然在我的主机服务器上运行其他网站,在主机Apache上运行.

所以我在主机上运行了siteA.com,siteB.com,siteC.com,使用主机Apache/PHP/MySQL服务器,我有一个安装在Docker容器中的siteZ.com,它应该使用容器的Apache/PHP但主机MySQL服务器.

这是我想要获得的架构的表示:

代表我的建筑

我的问题是,似乎我无法在容器中运行Apache,因为端口80已经在主机上使用.

我的目标是人们可以访问siteA.com,siteB.com,siteC.com和siteZ.com,而无需为任何这些网站指定不同的端口.

我设法通过端口8080运行siteZ.com,但显然不是一个选项.

谢谢

PS:请注意我对Docker完全不熟悉.

编辑:您可以在这里找到我的工作解决方案.感谢VonC 向我展示了要走的路 :)

php mysql apache docker

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

AWS:函数的指定 ConcurrentExecutions 将帐户的 UnreservedConcurrentExecution 降低到其最小值 [10] 以下

使用 GitHub actions 部署 laravel 项目时不断收到此错误

==> Updating Function Configurations

     Deployment Failed 

    AWS: Specified ConcurrentExecutions for function decreases account's UnreservedConcurrentExecution below its minimum value of [10].

 23613KB/23613KB [============================] 100% (< 1 sec remaining)
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-service-quotas

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

Java/Groovy - GroovyClassLoader中的内存泄漏

我正在加载大量的Groovy(2.4.6)脚本并在我的Java 8应用程序中使用GroovyScriptEngineImpl运行它们,一段时间后我遇到了问题.

您需要了解一些事项:

  • GroovyScriptEngineImpl每次运行脚本时我都必须重新创建一个新的
  • GroovyClassLoader每次运行脚本时我都必须重新创建一个新的

我需要这样做,以便在一个单独的"环境"中隔离每个脚本:我在类加载器中为一些脚本加载一些外部JAR,我不希望其他脚本能够使用这些脚本中的类JAR在被执行时.

我的问题来自这样一个事实:对于我运行的每个脚本,GroovyClassLoader它将创建一个新ScriptXXXX类并加载它,但永远不会卸载它.

这导致加载的类数量无限增加,并且内存最终被完全填充.

我尝试了大量的各种解决方案,但似乎都没有效果:

  • 添加-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGCJVM参数
  • 添加-Dgroovy.use.classvalue=trueJVM参数
  • 删除为每个ScriptXXXX类创建的"元类" ,如下所示:Groovy类没有被收集但没有内存泄漏的迹象
  • 清除缓存并关闭 GroovyClassLoader
  • 使用内省手动清除缓存中的类的一些字段 GroovyScriptEngineImpl
  • 等等...

这是ScriptXXXXEclipse Memory Analyzer中其中一个类的"最短路径到GC" :

Eclipse Memory Analyzer转储

我在这里显然没有解决方案,似乎没有一个真正起作用,因为类加载器总是保持对从未获得GCed的类的引用.

如果您想重现该问题,请参阅以下代码示例:

GroovyScriptEngineImpl se;

while (true)
{
    se = new GroovyScriptEngineImpl(new GroovyClassLoader());
    CompiledScript script = se.compile("println(\"hello\")");
    script.eval(se.createBindings());
}
Run Code Online (Sandbox Code Playgroud)

谢谢

更新:在阅读了pczeus的回复之后,我尝试限制元空间,并且有些类似乎确实正在卸载,我认为这是ScriptXXX类.

也就是说,几分钟后我Out of Metaspace在脚本执行过程中遇到错误.

这是我用VisualVM获得的配置文件:

Java VisualVM中的配置文件

Eclipse Memory Analyzer中用于ScriptXXX类的"GC路径" 确实是空的(它们不再是类的实例),即使该类仍然在直方图中列出.

java groovy memory-leaks classloader

9
推荐指数
1
解决办法
3467
查看次数

使用指向成员或交换机的指针数组会更好吗?

在我的学校,我们强烈建议在C++(和C)中使用指向成员的指针数组而不是switch(或多个if).

因为我没有看到使用这样的数组的任何意义(我实际上使用指向成员的指针的映射)而不是switch语句,我想知道是否有任何类型的优化会推荐指向函数的指针.

这就是让我觉得使用开关更好的原因:

  • 成员指针的数组(特别是映射)是内存繁重的(std :: string作为键,指针作为值),需要存储在类中(没有任何意义,因为它不是对象属性.. .)或者在函数中每次使用它们重新创建(如果静态声明):

    std::map<std::string, void (MyClass::*)(...)>   operations;
    
    Run Code Online (Sandbox Code Playgroud)
  • 他们很难实例化并准备好使用:

    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("push", &Parser::push));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("pop", &Parser::pop));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("dump", &Parser::dump));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("assert", &Parser::assert));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("add", &Parser::add));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("sub", &Parser::sub));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("mul", &Parser::mul));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("div", &Parser::div));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("mod", &Parser::pop));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("print", &Parser::print));
    operations.insert(std::map<std::string, void (Parser::*)(std::vector<std::string> const &)>::value_type("exit", &Parser::exit));
    
    Run Code Online (Sandbox Code Playgroud)
  • 它会强制你在某些函数中使用无用的参数,并使非const成员可以成为const.例如,在我之前的代码中,"print"和"assert"可能是const,如果它们没有在地图中使用,并且大多数函数不使用参数,而是"push"和"assert"是...

  • 您必须验证您要使用的指针是否存在于地图中,而不是仅让"默认"案例处理它,并且调用很难阅读: …

c++ optimization function-pointers switch-statement

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

如何在 Windows 上制作、制作和编译 C++14

我正在尝试在 Windows 10 上编译一个使用 C++14 等功能的 C++ 项目std::make_unique<>

我希望能够在命令行中轻松编译,使用 CMake 和 make,然后能够从任何命令行或只需单击它的可执行文件即可运行我的程序。

使用 Cygwin 进行编译,即使它确实有效(我使用了本教程),也不是一种选择,因为由于缺少 DLL,生成的可执行文件将无法在 Cygwin 环境之外使用。

我已经阅读了有关 MinGW-w64 的内容,但似乎适用于 Windows 的最新可用版本对应于GCC 4.8.3

此处mingw-get-setup.exe可用的 MinGW 安装程序也是如此,它只允许我安装 4.8.1-4 版本。

所以我想要一个关于如何使用 CMake 编译 C++14 项目的过程,这将允许我在默认的 Windows 环境中启动可执行文件。

谢谢。

更新: Chris Drew评论说我可以使用最新的 Visual Studio 版本来使用 Visual C++ 编译器而不是 GCC 来构建我的项目。我在回答中详细介绍了工作流程,但我仍在寻找一种“GNU 风格”的编译方式。

“GNU 风格”:使用Tive 评论中提供的链接来安装工作的 GCC 5.1 环境并使用普通cmake . -G"Unix Makefiles" && make命令。

有关两种解决方案的更多详细信息,请参阅此答案


c++ windows gcc compilation c++14

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

使用完全限定类型时,类型注释抛出“找不到符号”

package com.company;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.List;

public class Main {

    @Target(ElementType.TYPE_USE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface A {}

    public static void main(String[] args) {
    }

    private List<@A Integer> integers1;

    private List<@A java.lang.Integer> integers2;
}
Run Code Online (Sandbox Code Playgroud)

我收到 private List<@A java.lang.Integer> integers2; 错误:

错误:(20, 21) java: 找不到符号符号:类 java
位置:类 com.company.Main

是程序中的bug吗?

java types annotations

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

使用迁移重命名 Laravel 中的列

我使用 Laravel 5.6

我想改变author_IDuser_id

我有如下提到的列:

class CreatePostsTable extends Migration{

    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->increments('id');
            $table->bigInteger('author_ID');
            $table->bigInteger('category_ID')->nullable();
            $table->longText('post_content');
            $table->text('post_title');
            $table->string('post_slug', 200);
            $table->string('post_type', 20);
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('posts');
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下链接更改我的列名:

如何使用迁移重命名 Laravel 中的列?

然后创建吹迁移:

php artisan make:migration rename_author_id_in_post_table
Run Code Online (Sandbox Code Playgroud)

重命名迁移文件:

class UpdateUsernameInPostTable extends Migration{

    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->renameColumn('author_ID', 'user_id');
        });

    }

    public function down()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->renameColumn('user_id', 'author_ID');
        });
    } …
Run Code Online (Sandbox Code Playgroud)

migration laravel

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

jQuery slideUp/slideDown没有动画

我正在尝试使用标题和内容创建两个div,当我单击标题时,内容应该向上滑动以隐藏自身.

你可以在JSFiddle上找到我的代码.

我的HTML:

<div id="left-content">
    <div class="news-block">
        <div class="block-head">News membres</div>
        <div class="block-content"></div>
    </div>
    <div class="news-block">
        <div class="block-head">News premium & VIP</div>
        <div class="block-content"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的JavaScript:

jQuery(document).ready(function($){
    $('div.news-block').on('click', '.block-head', function(){
        var content = $(this).parent().find('div.block-content');
        if (content.is(':visible'))
            content.slideUp("slow");
        else
            content.slideDown("slow");
    });
});
Run Code Online (Sandbox Code Playgroud)

我红了一些帖子说你不能在tbody上使用slideUp()作为例子,或者在浮动div上,但正如你所看到的,我的"内容"div不浮动,这就是为什么我不明白为什么它是不工作

你有什么主意吗 ?

谢谢.

javascript jquery slidedown slideup

4
推荐指数
1
解决办法
9233
查看次数

Composer - 无法在Windows上安装mongodb/mongodb

我正在尝试使用composer在我的Laravel安装上安装以下软件包: jenssegers/mongodb

但是在安装时,我收到以下错误:

- jenssegers/mongodb v3.0.0 requires mongodb/mongodb ^1.0.0 -> satisfiable by mongodb/mongodb[1.0.0, 1.0.1].
- jenssegers/mongodb v3.0.1 requires mongodb/mongodb ^1.0.0 -> satisfiable by mongodb/mongodb[1.0.0, 1.0.1].
- jenssegers/mongodb v3.0.2 requires mongodb/mongodb ^1.0.0 -> satisfiable by mongodb/mongodb[1.0.0, 1.0.1].
- mongodb/mongodb 1.0.1 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.
- mongodb/mongodb 1.0.0 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.
- Installation request for jenssegers/mongodb ^3.0 -> satisfiable by jenssegers/mongodb[v3.0.0, …
Run Code Online (Sandbox Code Playgroud)

php windows mongodb composer-php

4
推荐指数
1
解决办法
6737
查看次数

为什么 Laravel 在网页上显示 '["data"]'

为什么当我使用这种从数据库中检索数据的形式时:

{{$homecontent->where('tabname', 'Maintenance')->pluck('tabname')}}
Run Code Online (Sandbox Code Playgroud)

Laravel 在我的页面上向我展示了带有方括号和引号的数据:

["Maintenance"] 
Run Code Online (Sandbox Code Playgroud)

我只是想让它把我还给我 Maintenance

php database laravel

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