小编gre*_*rep的帖子

为什么我的URI没有分层?

我有资源文件夹中的文件.例如,如果我需要从资源文件夹中获取文件,我喜欢这样:

File myFile= new File(MyClass.class.getResource(/myFile.jpg).toURI());             
System.out.println(MyClass.class.getResource(/myFile.jpg).getPath());
Run Code Online (Sandbox Code Playgroud)

我已经测试过,一切正常!

路径是

/D:/java/projects/.../classes/X/Y/Z/myFile.jpg

但是,如果我创建jar文件,使用,Maven:

mvn package
Run Code Online (Sandbox Code Playgroud)

...然后启动我的应用程序:

java -jar MyJar.jar
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

Exception in thread "Thread-4" java.lang.RuntimeException: ხელმოწერის განხორციელება შეუძლებელია
Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
        at java.io.File.<init>(File.java:363)
Run Code Online (Sandbox Code Playgroud)

... 和文件的路径是:

file:/D:/java/projects/.../target/MyJar.jar!/X/Y/Z/myFile.jpg
Run Code Online (Sandbox Code Playgroud)

当我尝试从资源文件夹中获取文件时,会发生此异常.在这条线上.为什么?为什么JAR文件中存在这个问题?你怎么看?

有另一种方法,获取资源文件夹路径?

java jar executable-jar maven java-7

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

我应该使用哪个事务管理器(JTA vs JPA)?

我有春季4申请.目前我使用JpatransactionManager.

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何选择交易经理吗?

例如,什么时候我应该使用jta事务管理器和jpa时,它们有什么好处和缺点?

我知道我有两种方式在春天工作.首先是JPA方式和第二种Hibernate方式.第一个包括java标准注释和标准api,第二个是hibenrate实现.如果我需要使用JTA,我必须使用hibernate而不是JPA,不是吗?

spring jpa jta

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

将PDF文件转换为图像

我想将PDF文档转换为图像.我在使用Ghost4j.

问题: Ghost4J需要gsdll32.dll文件在运行时,我也并不想使用的DLL文件.

问题1:有什么办法,在ghost4j中转换图像而不用dll?

问题2:我在PDFBox API中找到了解决方案.org.apache.pdfbox.pdmodel.PDPagep have methodconvertToImage()`将PDF页面转换为图像格式.

PDDocument doc = PDDocument.load(new File("/document.pdf"));
List<PDPage>pages =  doc.getDocumentCatalog().getAllPages();
PDPage page = pages.get(0);
BufferedImage image =page.convertToImage();
File outputfile = new File("/image.png");
ImageIO.write(image, "png", outputfile);
doc.close();
Run Code Online (Sandbox Code Playgroud)

我在PDF文档上只有文字.当我运行此代码时,我有这个例外:

Aug 12, 2013 6:00:24 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: BDC
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.getawtFont(PDTrueTypeFont.java:481)
    at org.apache.pdfbox.pdmodel.font.PDSimpleFont.drawString(PDSimpleFont.java:109)
    at org.apache.pdfbox.pdfviewer.PageDrawer.processTextPosition(PageDrawer.java:235)
    at org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:496)
    at org.apache.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:62)
    at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:554)
    at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:268)
    at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
    at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
    at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:125)
    at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:781)
    at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:712)
    at …
Run Code Online (Sandbox Code Playgroud)

java pdf pdf-generation pdfbox ghost4j

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

Spring REST服务证书auth

我写过Spring控制器.这得到了客户的要求.这只是REST风格.

这是非常好的.但我需要证书身份验证.只有客户端必须能够访问具有密钥的客户端证书的其余服务(spring控制器)(换句话说,客户端应该具有带密钥的密钥库).

如何将此安全性配置为弹簧?你能给我一个例子或链接吗?

谢谢

java rest spring spring-mvc spring-security

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

我有@ManyToMany时如何设置ForeignKey名称

我正在使用JPA类创建数据库.

如果我们有ManyToOne关系,我们可以像这样覆盖ForeignKey名称:

@ManyToOne
@JoinColumn(foreignKey = @ForeignKey(name = "FK_COUNTRY"))
private Country country;
Run Code Online (Sandbox Code Playgroud)

在DB中,我们将得到这样的结果:

在此输入图像描述

好的,那很好.好结果!

但是当我有@ManyToMany时,我将无法设置我自己的FK名称.

我该如何创建呢?我尝试这样的东西,但它不起作用:

@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@JoinTable(name = "NEW_TABLE",  foreignKey = @ForeignKey(name = "FK_TEST"))
Run Code Online (Sandbox Code Playgroud)

或类似的东西:

@JoinTable(
        name="NEW_TABLE",
        joinColumns=
            @JoinColumn(name="ID1", referencedColumnName="ID",  foreignKey = @ForeignKey(name = "FK_DEV_ID")),
        inverseJoinColumns=ID2", referencedColumnName="ID", foreignKey = @ForeignKey(name = "FK_DEV_ZONE"))
    )  
Run Code Online (Sandbox Code Playgroud)

或这个:

@ManyToMany(cascade = CascadeType.PERSIST)
@JoinTable(name="NEW_TABLE_2",
            joinColumns=
                @JoinColumn(name="ID1", referencedColumnName="ID", 
                            foreignKey = @ForeignKey(name = "FK_1")
                ),
            inverseJoinColumns=
                @JoinColumn(name="ID2", referencedColumnName="ID", 
                            foreignKey = @ForeignKey(name = "FK_2")
                ),

            foreignKey = @ForeignKey(name = "FK_1"),
            inverseForeignKey = …
Run Code Online (Sandbox Code Playgroud)

naming hibernate jpa foreign-keys

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

如何使用Spring Security自动注销

我有一个Spring Web应用程序,我使用Spring安全性进行了用户身份验证.

一切都很好.登录和注销工作完美!

现在,我想实现以便自动注销.例如,如果用户打开窗口大约30分钟并且什么也不做(例如,会话已过期)系统应该自动注销.我该如何实现呢?

它可能由客户端实现(我每1分钟发送一次请求并检查会话是否结束).但我不能自动从Spring那里做到这一点吗?

我有这个配置:

<http auto-config="true" use-expressions="true">


        <intercept-url pattern="/admin**" />
        <access-denied-handler error-page="/403" />

        <form-login login-page="/login" 
            default-target-url="/admin"
            authentication-failure-url="/login?error" 
            username-parameter="NAME"
            password-parameter="PASSWORD"  />

        <logout invalidate-session="true" 
             logout-success-url="/login?logout"/>

    </http>
Run Code Online (Sandbox Code Playgroud)

并在web.xml中

<session-config>
  <session-timeout>1</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

1分钟后,我看到会话被破坏了.1分钟后杀死会话.但是页面没有重定向到/ login?logout

java spring spring-mvc spring-security

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

如何排序<Integer,MyObject> map

我有这样的地图:

Map<Integer, MyEntry> map = new HashMap<Integer, MyEntry>();
Run Code Online (Sandbox Code Playgroud)

MyEntry是这样的:

public class MyEntry {
    private String title;
    private String value;

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

将值放入地图后,我想对其进行排序.第一个元素是最小的,最后一个元素是最大的.

java sorting hashmap

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

如何从 JS 更改 v-model 值

我正在使用 Google 自动完成地址表单。我在谷歌官方网页上找到了示例。一切安好。一切正常!但它是原生 Javascript,

我有 Vue 应用程序,但我不喜欢从 JS 脚本更改文本输入值的方式。这个想法是,当我更改主输入中的某些内容时,JS 事件侦听器应该更改其他输入的值:

 document.getElementById(addressType).value = val;
Run Code Online (Sandbox Code Playgroud)

问题是我应该使用“文档”来更改值:

 document.getElementById('street_number').value
Run Code Online (Sandbox Code Playgroud)

我想有类似的东西:

 <input type="text" v-model="input.address" ref="addressRef">
Run Code Online (Sandbox Code Playgroud)

并读取值:

export default {
        data() {
            return {
                input: {
                    address: "",
                    ...
                }

            };
        },
        methods: {
            test() {
                console.log(this.input.address);
                console.log(this.$refs.addressRef);
        }
       }
Run Code Online (Sandbox Code Playgroud)

所以问题是:

  • 如何从 JS 代码设置值以更新绑定值?现在值为空,因为我使用 "getElementById("id").value = val"

javascript vue.js vue-component vuejs2

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

如何证明一个证书是另一个证书的颁发者

我有两个证书.一个证书是另一个证书的颁发者.

我如何看到java代码,我的发行人证书真的是发行人?

我知道我的证书的AuthorityKeyIdentifier和颁发者证书的SubjectKeyIdentifie必须是相同的.我查了一下,他们是一样的.

但使用java代码我有这样的结果:

    CertificateFactory certFactory = CertificateFactory.getInstance("X.509");

    InputStream usrCertificateIn = new FileInputStream("/usr.cer");
    X509Certificate cert = (X509Certificate) certFactory.generateCertificate(usrCertificateIn);

    InputStream SiningCACertificateIn = new FileInputStream("/siningCA.cer");
    X509Certificate issuer = (X509Certificate) certFactory.generateCertificate(SiningCACertificateIn);

    byte[] octets = (ASN1OctetString.getInstance(cert.getExtensionValue("2.5.29.35")).getOctets());     
    System.out.println(Arrays.toString(octets) + " bouncycastle, AuthorityKeyIdentifier");
    System.out.println(Arrays.toString(cert.getExtensionValue("2.5.29.35")) + "java.security, AuthorityKeyIdentifier");

    octets = ASN1OctetString.getInstance(issuer.getExtensionValue("2.5.29.14")).getOctets();
    System.out.println((Arrays.toString(octets) + "bouncycastle, SubjectKeyIdentifie "));
    System.out.println(Arrays.toString(issuer.getExtensionValue("2.5.29.14")) + "java.security, SubjectKeyIdentifie ");
Run Code Online (Sandbox Code Playgroud)

结果是:

[48,22,-128,20,52,-105,49,-70,-24,78,127,-113,-25,55,39,99,46,6,31,66,-55, -86,-79,113 ] bouncycastle,AuthorityKeyIdentifier

[ 4,24,48,22,-128,20,52,-105,49,-70,-24,78,127,-113,-25,55,39,99,46,6,31,66 ,-55,-86,-79,113 ] java.security,AuthorityKeyIdentifier

和另一个必须相同的字节数组,但不是在数组的开头添加另一个字节.

[ 4,20,52,-105,49,-70,-24,78,127,-113,-25,55,39,99,46,6,31,66,-55,-86,-79 …

bouncycastle certificate digital-certificate x509certificate x509

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

为什么Jenkins 1.598和tomcat 8自动部署不起作用

我有詹金斯1.598.我将自动部署插件安装到jenkins中(但它不适用于tomcat 8,还没有更新).

一切都很好!构建完成后,它开始重新部署.但有时我会有这样的错误,我不明白它何时以及为什么会发生.当我重新启动tomcat时,一切都再好了!

  Deploying C:\jenkins\test\target\tr-gui.war to container Tomcat 7.x Remote
      Redeploying [C:\jenkins\test\target\tr-gui.war]
      Undeploying [C:\jenkins\test\target\tr-gui.war]
    ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exception
    org.codehaus.cargo.container.ContainerException: Failed to undeploy [C:\jenkins\test\target\tr-gui.war]
        at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:140)
        at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178)
        at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
        at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
        at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
        at hudson.FilePath.act(FilePath.java:981)
        at hudson.FilePath.act(FilePath.java:959)
        at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
        at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
        at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
        at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734)
        at hudson.model.Build$BuildExecution.post2(Build.java:183)
        at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683)
        at hudson.model.Run.execute(Run.java:1784)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        at hudson.model.ResourceController.execute(ResourceController.java:89)
        at hudson.model.Executor.run(Executor.java:240)
    Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete [C:\servers\tomcat 8\webapps\test]. The continued presence of this file may cause …
Run Code Online (Sandbox Code Playgroud)

tomcat jenkins

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