小编Mat*_*teo的帖子

连接到需要使用Java进行身份验证的远程URL

如何连接到需要身份验证的Java远程URL.我试图找到一种方法来修改以下代码,以便能够以编程方式提供用户名/密码,因此它不会抛出401.

URL url = new URL(String.format("http://%s/manager/list", _host + ":8080"));
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
Run Code Online (Sandbox Code Playgroud)

java httpurlconnection

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

从shell脚本导入函数

我有一个shell脚本,我想用shUnit测试.脚本(和所有功能)都在一个文件中,因为它使安装更容易.

示例 script.sh

#!/bin/sh

foo () { ... }
bar () { ... }

code
Run Code Online (Sandbox Code Playgroud)

我想编写第二个文件(不需要分发和安装)来测试中定义的函数 script.sh

就像是 run_tests.sh

#!/bin/sh

. script.sh

# Unit tests
Run Code Online (Sandbox Code Playgroud)

现在的问题在于.(或source在Bash中).它不仅解析函数定义,还执行脚本中的代码.

由于没有参数的脚本没有任何坏处,我可以

. script.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

但如果有更好的方法来实现我的目标,我就会徘徊.

编辑

我建议的解决方法在源脚本调用的情况下不起作用,exit所以我必须捕获退出

#!/bin/sh

trap run_tests ERR EXIT

run_tests() {
   ...
}

. script.sh
Run Code Online (Sandbox Code Playgroud)

run_tests调用该函数但是只要我重定向source命令的输出,脚本中的函数就不会被解析,并且在陷阱处理程序中不可用

这有效,但我得到的输出script.sh:

#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
   function_defined_in_script_sh
}
. script.sh
Run Code Online (Sandbox Code Playgroud)

这不打印输出但是我得到一个错误,该函数未定义:

#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
   function_defined_in_script_sh
}
. script.sh …
Run Code Online (Sandbox Code Playgroud)

shell

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

如何在PostgreSQL中仅基于小写创建索引?

我如何仅根据小写设置索引?

即使实际字段包含大写和小写字母.

此外,我可以运行查询并只返回小写索引值吗?

string postgresql indexing

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

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

命令行中转换命令出错

我有一个bash shell脚本如下.

#!/bin/bash

SIZES=("512" "1024" "2048")

for i in ${!SIZES[*]}
do
    SIZE=${SIZES[$i]}
    echo $SIZE

    # first, resize original image
    convert -resize $SIZE"x"$SIZE! chernarus2048.jpg chernarus$SIZE"x"$SIZE.jpg
    mkdir tiles$SIZE
    # slice resized image into 256x256 tiles
    convert -crop 256x256 chernarus$SIZE"x"$SIZE.jpg tiles$SIZE/tile%04d.jpg
    rm chernarus$SIZE"x"$SIZE.jpg
done
Run Code Online (Sandbox Code Playgroud)

但是当我使用以下命令在命令行中运行它时

sh generate_tiles.sh chernarus2048.jpg
Run Code Online (Sandbox Code Playgroud)

我收到错误转换:命令未找到

我正在使用OS X Yosemite 10.10.2.图像保存在放置shell脚本的同一文件夹中.请帮帮我.

macos bash shell

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

excel电子邮件验证公式

我有一个列,人们手动输入电子邮件地址.我想使用以下公式验证电子邮件地址:

=AND(FIND(“@”,A2),FIND(“.”,A2),ISERROR(FIND(” “,A2)))
Run Code Online (Sandbox Code Playgroud)

但excel会出现错误,即您键入的公式包含错误.对我来说,公式看起来是对的.你们有什么建议吗?

excel excel-2007

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

Hibernate工具:解析JNDI名称时出错

我们正在尝试从Hibernate 3.6.7升级到4.1.2,将Hibernate Tools 3.2.0升级到3.5.0

我们使用Ant生成数据库创建脚本:

     <hibernatetool destdir="${target}">
        <jpaconfiguration persistenceunit="stdcmpOrderPersistenceUnit" propertyfile="@{propertyfile}"/>
        <classpath refid="@{classpathid}"/>
        <!-- the file name is relative to $destdir -->
        <hbm2ddl outputfilename="@{output}" format="true" export="false" drop="false"/>
     </hibernatetool>
Run Code Online (Sandbox Code Playgroud)

我们的持久性单元看起来像这样:

<persistence-unit name="stdcmpOrderPersistenceUnit" transaction-type="JTA">

    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/lakshmi_stdcmp</jta-data-source>
    <mapping-file>META-INF/stdcmpOrderNamedQueries.xml</mapping-file>

    <class>ch.ethz.id.wai.lakshmi.stdcmp.persistency.PersistentOrder</class>

    <exclude-unlisted-classes>true</exclude-unlisted-classes>

    <properties>
        <property name="hibernate.show_sql" value="false"/>
        <property name="hibernate.format_sql" value="false"/>
    </properties>

</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

升级后,我们收到以下错误:

[hibernatetool] org.hibernate.service.jndi.JndiException: Error parsing JNDI name [jdbc/lakshmi_stdcmp]
[hibernatetool] javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
Run Code Online (Sandbox Code Playgroud)

为什么Hibernate会尝试解析JNDI名称,因为PersistenceUnit上的所有信息都可用?我们对旧版本没有任何问题.

在任何情况下,我们如何指定NamingFactory?(哪一个?)

hibernate hibernate-tools

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

在subversion中获取已删除文件夹的最新版本

我需要很久以前从我们的存储库中删除文件夹的内容

  • 我仍然知道该文件夹的名称
  • 我不知道它被删除的修订版
  • 我不知道它被删除的日期
  • 在父目录的历史记录中没有信息(即,没有评论提到该文件夹​​被删除)

svn log 似乎没有帮助:

$ svn log deleted_folder
svn: 'deleted_folder' is not under version control
Run Code Online (Sandbox Code Playgroud)

svn co 也没有帮助

$ svn co URL/deleted_folder
Run Code Online (Sandbox Code Playgroud)

如何找到已删除文件夹的最新修订版?

编辑:一个选项可以用蛮力来检查每个版本的倒退,但因为有超过10K的选项将只是为了紧急.我真的觉得肯定有一个更好的方法.

svn data-recovery

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

Ant,jvmarg,系统属性和引号

我们有一个属性,它包含一系列要在Ant脚本中传递给JVM的参数.

示例(请注意第二个条目中的引号):

-Dsql.driver=oracle.jdbc.driver.OracleDriver -Dapp.datasource-properties=URL='jdbc:oracle:thin:@//192.168.56.42:1521/xe':User=user:Password=password  
Run Code Online (Sandbox Code Playgroud)

如果我用echo目标打印变量的内容,我得到预期的结果

<echo message="${jvm.arguments}"/>
Run Code Online (Sandbox Code Playgroud)

产生

-Dsql.driver=oracle.jdbc.driver.OracleDriver -Dapp.datasource-properties=URL='jdbc:oracle:thin:@//192.168.56.42:1521/xe':User=user:Password=password 
Run Code Online (Sandbox Code Playgroud)

然后我将该变量用作JVM的参数.

例:

<junit fork="true" forkmode="once" showoutput="true" printsummary="on">
    <jvmarg
        line="-XX:MaxPermSize=256m -Xms1024M ${jvm.arguments}"
Run Code Online (Sandbox Code Playgroud)

报价被默默地删除.Ant的详细输出给了我

[junit] Executing '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java' with arguments:
[junit] '-XX:MaxPermSize=256m'
[junit] '-Xms1024M'
[junit] '-Dsql.driver=oracle.jdbc.driver.OracleDriver'
[junit] '-Dapp.datasource-properties=URL=jdbc:oracle:thin:@//192.168.56.42:1521/xe:User=user=password'
Run Code Online (Sandbox Code Playgroud)

如何将系统属性传递给包含引号的JVM?(单人还是双人)?

我尝试使用双引号转义它们,但没有效果.

java ant quotes properties

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

Hibernate Envers和"Javassist Enhancement failed"异常

我们正在使用Hibernate Envers并出现以下情况:

一个类BusinessObjectTypeIdentity一个引用的类BusinessObjectType:

@Entity
@Table( name = "ID_IDENTITY" )
@Audited
public class Identity {

    @ManyToOne
    @JoinColumn( name = "BO_TYPE_ID" )
    @IndexColumn( name = "INDEX_BO_BO_TYPE" )
    private BusinessObjectType businessObjectType;

    […]

}
Run Code Online (Sandbox Code Playgroud)

然后我们查询所有版本的Identity:

AuditQuery auditQuery = auditReader.createQuery().forRevisionsOfEntity(
    Identity.class,
    false,
    true );
auditQuery.add( AuditEntity.id().eq( dbid ) );

@SuppressWarnings( "unchecked" )
List< Object[]> history = (List< Object[]>) auditQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)

如果存储的身份没有BusinessObjectType(即,businessObjectType是和否),一切都像魅力一样.

如果身份有一个businessObjectType != null我们得到"Javassist Enhancement failed"异常:

Javassist Enhancement failed: ch.ethz.id.wai.baseclasses.BusinessObjectType
Run Code Online (Sandbox Code Playgroud)

这个错误似乎与Envers试图实例化一个BusinessObjectType有关但我真的没看到问题是什么(如果我们不使用AuditQuery,Hibernate对这两个对象都没有问题).

异常的原因是

java.lang.InstantiationException: ch.ethz.id.wai.baseclasses.BusinessObjectType_$$_javassist_49 …
Run Code Online (Sandbox Code Playgroud)

hibernate hibernate-envers

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