小编Wre*_*nch的帖子

构造函数中的可覆盖方法调用有什么问题?

我有一个Wicket页面类,它根据抽象方法的结果设置页面标题.

public abstract class BasicPage extends WebPage {

    public BasicPage() {
        add(new Label("title", getTitle()));
    }

    protected abstract String getTitle();

}
Run Code Online (Sandbox Code Playgroud)

NetBeans通过消息"构造函数中的可覆盖方法调用"警告我,但它应该有什么问题呢?我能想象的唯一选择是将其他抽象方法的结果传递给子类中的超级构造函数.但是很多参数很难读懂.

java oop inheritance constructor overriding

366
推荐指数
4
解决办法
12万
查看次数

com.jcraft.jsch.JSchException:UnknownHostKey

我正在尝试使用Jsch在Java中建立SSH连接.我的代码产生以下异常:

com.jcraft.jsch.JSchException: UnknownHostKey: mywebsite.com. 
RSA key fingerprint is 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4
Run Code Online (Sandbox Code Playgroud)

我找不到如何在Jsch文档中验证主机密钥.我在下面提供了我的代码.

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

public class ssh {
    public static void main(String[] arg) {

        try {
            JSch jsch = new JSch();

            //create SSH connection
            String host = "mywebsite.com";
            String user = "username";
            String password = "123456";

            Session session = jsch.getSession(user, host, 22);
            session.setPassword(password);
            session.connect();

        } catch(Exception e) {
            System.out.println(e);
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

java ssh jsch

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

如何在具有不同名称的同一个docker守护程序上多次运行相同的docker-compose.yml?

我的情况.试图在同一个盒子上多次运行一个docker-compose结构.这是我的docker-compose.yml:

version: '3'
services:
  code:
    image: organization:java-maven
    links:
      - mysql:mysql
    volumes:
      - "${PWD}:/home/ubuntu/src"
  mysql:
    image: organization:mysql
Run Code Online (Sandbox Code Playgroud)

运行两次,docker-compose run code mvn clean test创建两个容器code和一个容器mysql.

现在,我想要一个code链接到另一个mysql,另一个 code链接到另一个 mysql.

我该如何做到这一点?这应该是在jenkins奴隶上运行的,并且maven执行不能共享mysql.

我很难尝试使用"-e KEY = VALUE"选项docker-compose runcontainer_namedocker compose文件一起尝试.

不知道该如何处理,请帮助,谢谢.

docker docker-compose

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

JPA没有将外键保存到@OneToMany关系

我正在使用Spring和Hibernate作为JPA提供程序,并且正在尝试获取@OneToMany(具有许多phonenumbers的联系人)以将外键保存在电话号码表中.从我的表单中我得到一个Contact对象,其中包含Phone(数字)列表.Contact正确持久化(Hibernate从指定的序列中获取PK).电话(号码)列表也会以正确的PK保留,但是联系人表格中没有FK.

public class Contact implements Serializable {

    @OneToMany(mappedBy = "contactId", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
    private List<Phone> phoneList;

}

public class Phone implements Serializable {

    @JoinColumn(name = "contact_id", referencedColumnName = "contact_id")
    @ManyToOne
    private Contact contactId;

}

@Repository("contactDao")
@Transactional(readOnly = true)
public class ContactDaoImpl implements ContactDao {

    @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
    public void save(Contact c) {
        em.persist(c);
        em.flush();
    }
}


@Controller
public class ContactController {
    @RequestMapping(value = "/contact/new", method = RequestMethod.POST)
    public ModelAndView newContact(Contact c) {
        ModelAndView mv = new …
Run Code Online (Sandbox Code Playgroud)

java spring jpa

18
推荐指数
3
解决办法
4万
查看次数

CloudFront分发和AWS颁发的证书提供SSL_ERROR_NO_CYPHER_OVERLAP

我使用AWS证书无法使用Internet < - > CloudFront < - > S3 Bucket工作.这就是我做的:

  1. 创建了一个证书,一个通配符,如:*.mydomain.com.
  2. 创建了一个S3存储桶,没有属性的fiddeling.
  3. 创建CloudFront分配,使用创建的S3存储桶URL作为源,从步骤1中选择我的证书,选择HTTP/2,HTTP/1.1,HTTP/1.0,然后选择HTTP到HTTPS重定向.
  4. 在我的托管区域中为颁发证书的域创建了一个A别名,指向我的分发URL.

创建分发后,我的浏览器都告诉我这个:

  • Firefox:SSL_ERROR_NO_CYPHER_OVERLAP
  • Chrome:ERR_SSL_VERSION_OR_CIPHER_MISMATCH
  • Safari:无法建立安全连接.

我不确定我是否错过了设置过程中的一个步骤,我试图摆弄各种参数,但没有任何东西让我通过.

想知道我在这里错过了什么.

UPDATE

阅读此博客文章,说我可能忘记添加备用CNAME.这让我有点困惑,不是吗?在Route 53中,我使用something.mydomain.com配置了我的完整域名,证书是通配符.

其他博客文章和问题答案表明我不应该像我一样使用A记录和CloudFront分发URL /端点.

ssl amazon-web-services amazon-cloudfront amazon-route53

18
推荐指数
2
解决办法
3487
查看次数

如何将JSON转换为Scala中的类型

我的问题是我收到来自Twitter的JSON文本.然后我想将此文本转换为scala中的本机对象.有没有标准的方法来做到这一点?我也在使用Play 2

这就是我所拥有的

import scala.io.Source.{fromInputStream}
import java.net._

val url = new URL("https://api.twitter.com/1/trends/1.json")
val content = fromInputStream( url.openStream ).getLines.mkString("\n")
val json = Json.parse(content)
val a = (json \ "trends" )
Ok(a(0))
Run Code Online (Sandbox Code Playgroud)

我想从JSON中获取所有趋势名称

json scala playframework

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

同一域上的CloudFront和API网关服务

我想要:

  • 在我的域www.example.com上分发网站的静态部分(html,css,js).
  • 将API网关服务放在我的域下的文件夹www.example.com/v1下.

我该如何做到这一点?

在路线53中,根据我的理解,我只能指向一个云端分布,因此我选择启用S3/CloudFront的存储桶.

因此,最终结果应该是,按优先级/映射的顺序:

  • www.example.com/v1/*< - > API网关< - > Lambda < - > DynamoDB
  • www.example.com/*< - > CloudFront < - > S3存储桶内容

我能以什么方式实现这一目标?如果没有,我有什么选择,因为我需要在Web浏览器中弯曲到相同的原始要求.

amazon-s3 amazon-web-services amazon-cloudfront amazon-route53 aws-api-gateway

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

Terraform,"ignore_changes"和子块

我在terraform文件中配置了AWS CodePipeline,如下所示:

resource {
    name = "Cool Pipeline"
    ...

    stage {
        name = "Source"
        ...

        action {
            name = "Source"
            ...

            configuration {
                Owner = "Me"
                Repo = "<git-repo-uri>"
                Branch = develop
                OAuthToken = "b3287d649a28374e9283c749cc283ad74"
            }
        }
    }

    lifecycle {
        ignore_changes = "OAuthToken"
    }
}
Run Code Online (Sandbox Code Playgroud)

忽略令牌的原因是AWS API没有将该令牌显示为terraform,而是AWS API通过以下方式输出aws codepipeline get-pipeline <name>:

"pipeline": {
    "stages": {
        "name": "Source",
        "actions": {
            "configuration": {
                "OAuthToken": "****"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是,当我执行terraform plan它时,它显示我想要更新该令牌,如下所示:

module.modulename.aws_codepipeline.codepipeline
      stage.0.action.0.configuration.%:          "3" => "4"
      stage.0.action.0.configuration.OAuthToken: "" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-codepipeline

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

如何在Jenkinsfile中捕获手动UI取消作业

我试图找到有关如何在Jenkinsfile管道中捕获用户在jenkins Web UI中取消作业时发生的错误的文档.

我还没有得到posttry/catch/finally接近的工作,他们只在一些构建中失败的工作.

当有人取消工作时,这会导致资源无法释放.

我今天所拥有的是一个声明性管道中的脚本,如下所示:

pipeline {
  stage("test") {
    steps {
      parallell (
        unit: {
          node("main-builder") {
            script {
              try { sh "<build stuff>" } catch (ex) { report } finally { cleanup }
            }
          }
        }
      )
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,当从UI手动取消作业时,将忽略其中的所有内容catch(ex)finally块.

groovy jenkins jenkins-pipeline

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

Hibernate使得Weld没有在Java SE中初始化

所以,我有一个使用Weld 1.2进行依赖注入的基本Java SE程序.

一切正常,直到我将Hibernate放入混合中,并使用以下pom.xml依赖项:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
</dependency>
<dependency>
    <groupId>org.jboss.weld.se</groupId>
    <artifactId>weld-se</artifactId>
    <version>2.2.4.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.3.6.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

Hibernate是添加的依赖项,使其中断.这是我的入门课程:

public class EntryPoint {
    public static void main( String[] ARGV ) {
        Weld weld = new Weld();
        WeldContainer container = weld.initialize();

        Application application = container.instance().select(Application.class).get();

        application.testFetch();

        weld.shutdown();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在包含Hibernate依赖项后尝试运行它时,这是我的输出:

Sep 11, 2014 11:13:44 PM org.jboss.weld.bootstrap.WeldStartup <clinit>
INFO: WELD-000900: 2.2.4 (Final)
Sep 11, 2014 11:13:44 PM org.jboss.weld.bootstrap.WeldStartup startContainer
INFO: WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. …
Run Code Online (Sandbox Code Playgroud)

java hibernate maven cdi weld

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