小编Mik*_*eck的帖子

如何从单个方法返回两个值?

如果您需要在一个方法中返回两件事,那么最好的方法是什么?

我理解一个方法应该只做一件事的理念,但是说你有一个运行数据库选择的方法,你需要拉两列.我假设您只想遍历数据库结果集一次,但是您想要返回两列值的数据.

我提出的选项:

  1. 使用全局变量来保存退货. 我个人尽力避免使用全局变量.
  2. 传入两个空变量作为参数,然后在方法内部分配变量,现在这是一个空白. 我不喜欢有副作用的方法的想法.
  3. 返回包含两个变量的集合. 这可能会导致令人困惑的代码.
  4. 构建一个容器类来保存双返回. 这比包含其他集合的集合更自我记录,但似乎只是为了返回而创建一个类可能会令人困惑.

language-agnostic return-value

15
推荐指数
4
解决办法
3237
查看次数

用于Java的轻量级SOAP客户端库

任何人都可以推荐一个好的Java开源库来构建一个简单的SOAP Web服务客户端吗?我正在寻找可在Java 5 SE环境中运行的具有最小依赖性和配置的东西.升级到Java 6并不是这个项目的一个选项,如果我可以避免使用它,我宁愿避免使用完整的J2EE容器.我不需要发布和服务,只需要消费.

我目前正在使用Axis2,但我必须提供大约15MB的额外罐子才能在没有NoClassDefFoundError的情况下对Web服务进行简单的调用,而且我正在寻找一些不那么臃肿的东西.

我也看过CXF,但我不愿意使用它,因为它与Spring紧密耦合.Spring不是100%的交易破坏者,但如果可能的话,我宁愿避免它.

有什么建议?

java soap

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

任何使用可执行要求的人?

在我对它们的有限经验中,可执行要求(即将所有要求指定为破坏的自动化测试)已被证明是非常成功的.我参与了一个项目,其中我们非常重视创建高级自动化测试,这些测试运用了给定用例/用户故事的所有功能.在我们开始这种练习之后,对我来说真的很容易开发.在编写测试后,实现功能变得非常容易,我们能够对系统进行重大架构更改,并且全世界都相信所有内容仍然与昨天一样.

我们遇到的最大问题是管理这些类型测试的工具不是很好.我们使用Fitnesse相当多,因此我现在讨厌Fit框架.

我想知道1)如果有其他人有使用这种类型的测试驱动的需求定义的经验,2)你们用什么工具来促进这一点.

testing automation process

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

以编程方式检查.class文件

我工作的地方,我们正在做大量的Java服务和客户用其它各种语言之间的远程对象转移的项目.鉴于我们目前的限制,我已经决定要看看它会采取基于现有的Java类代码.基本上,我需要一个.class文件(或它们的集合)解析字节码,以确定所有的数据成员,或许getter/setter方法,然后写的东西,可以在不同的语言输出的代码来创建一个类具有相同的结构.

我不是在寻找像JAD这样的标准反编译器.我需要能够获取.class文件并创建其数据成员和方法的对象模型.这有可能吗?

java decompiling bytecode

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

您可以将没有.jsp扩展名的文件渲染为JSP吗?

是否可以告诉标准Java EE servlet容器解释并将文件呈现为JSP,即使它没有.jsp扩展名?

假设我在WAR的根目录中有一个名为foo.xyz的文件.该文件包含一些jstl逻辑,正如您在.jsp文件中所期望的那样.如果我请求http://myserver/myapp/foo.xyz,我将看到该文件的文字代码呈现为文本.有没有办法配置Web应用程序,使其在不更改文件扩展名的情况下使用JSP解释器呈现文件?

请不要问我为什么要这样做.约束很复杂.

jsp web.xml servlets java-ee

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

无法实现的接口方法的正确行为

如果我有一个需要实现接口的类,但该接口上的一个或多个方法在这个特定类的上下文中没有意义,我该怎么办?

例如,假设我正在实现一个适配器模式,我想通过包装一些不可变对象并将其数据作为键/值对公开来创建一个实现java.util.Map的包装类.在这种情况下,put和putAll方法没有意义,因为我无法修改底层对象.所以问题是这些方法应该做什么?

java

8
推荐指数
3
解决办法
382
查看次数

将Maven工件传递下载到本地存储库

我正在尝试将特定工件(及其所有依赖项)下载到计算机的本地存储库.

似乎使用依赖:get目标将是最佳选择,但尽管有文档,它似乎并没有实际获得传递依赖.

下面是一个示例,我尝试使用它dependency:get来下载spring-core jar及其所有依赖项.您会注意到Spring-core jar是唯一下载的东西,尽管这是在清理本地存储库之后完成的.

$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.2:get -DrepoUrl=http://repo1.maven.org/maven2/ -Dartifact=org.springframework:spring-core:3.0.5.RELEASE -Dtransitive=true
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.2:get (default-cli) @ standalone-pom ---
Downloading: http://repo1.maven.org/maven2/org/springframework/spring-core/3.0.5.RELEASE/spring-core-3.0.5.RELEASE.jar
Downloaded: http://repo1.maven.org/maven2/org/springframework/spring-core/3.0.5.RELEASE/spring-core-3.0.5.RELEASE.jar (374 KB at 548.4 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.401s
[INFO] Finished at: Wed May 25 00:29:47 CDT 2011
[INFO] Final Memory: 7M/107M
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)



我的问题是:

  1. 这是dependency:get目标的错误吗?
  2. 如果没有,我做错了什么?
  3. 我可以使用任何替代方法来实现我最初设定的目标吗?

maven transitive-dependency

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

将Java Deflater/Inflater与自定义字典一起使用会导致IllegalArgumentException

以下代码基于java.util.zip.Deflaterjavadocs中给出的示例.我所做的唯一更改是创建一个名为dict的字节数组,然后使用setDictionary(byte [])方法在Deflater和Inflater实例上设置字典.

我看到的问题是,当我用与Deflater完全相同的数组调用Inflater.setDictionary()时,我得到一个IllegalArgumentException.

这是有问题的代码:

import java.util.zip.Deflater;
import java.util.zip.Inflater;

public class DeflateWithDictionary {
    public static void main(String[] args) throws Exception {
        String inputString = "blahblahblahblahblah??";
        byte[] input = inputString.getBytes("UTF-8");
        byte[] dict = "blah".getBytes("UTF-8");

        // Compress the bytes
        byte[] output = new byte[100];
        Deflater compresser = new Deflater();
        compresser.setInput(input);
        compresser.setDictionary(dict);
        compresser.finish();
        int compressedDataLength = compresser.deflate(output);

        // Decompress the bytes
        Inflater decompresser = new Inflater();
        decompresser.setInput(output, 0, compressedDataLength);
        decompresser.setDictionary(dict);  //IllegalArgumentExeption thrown here
        byte[] result = new byte[100];
        int resultLength …
Run Code Online (Sandbox Code Playgroud)

java compression zip deflate

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

在函数中使用EXECUTE时出现PostgreSQL语法错误

我正在尝试创建一个引用PostgreSQL 8.4中的临时表的函数.基于我的研究,似乎最好的方法是使用EXECUTE命令从定义的字符串执行我的查询.

不幸的是,我在尝试创建函数时遇到奇怪的语法错误.

我目前的功能定义如下:

CREATE OR REPLACE FUNCTION example() RETURNS void AS $$
  EXECUTE 'INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3 from temp_table';
$$ LANGUAGE SQL;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ERROR:  syntax error at or near "'INSERT INTO table1 (col1, col2, col3) SELECT col1, col2, col3 from temp_table'"
LINE 2:   execute 'INSERT INTO table1 (col1, col2, col3) SELECT col1...
Run Code Online (Sandbox Code Playgroud)

无论字符串文字中的实际内容如何,​​我似乎都得到了同样的错误.

我的问题是,1)使用EXECUTE特性的正确语法是什么,2)是否有更好的方法来编写这样一个引用临时表的函数?

postgresql function execute temp-tables syntax-error

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

您是否可以强制HTML表单将HTTPS用于相对URL?

我有一个网站,其中每个页面都通过HTTPS提供.在其中一个页面上,我有一个表单,其action属性设置为相对URL.

带有表单的页面只能通过HTTPS访问,表单发布到的页面只能通过HTTPS访问,但在IE中我得到一个安全警告,告诉我我将要切换到不安全的连接.除了将包含协议的完整URL编入表单的action属性之外,还有什么方法可以防止这个问题吗?

更新:

我尝试对整个URL进行硬编码,但仍然可以弹出窗口.

相关代码是:

<html>
    <body>
      <form action="https://mydomain.com/editProfile">
         ...
      </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

一旦我点击IE6中的提交按钮,我就会收到一个安全警告弹出窗口.如果单击"确定",将显示结果页面,协议仍为HTTPS.我开始怀疑是否是导致问题的表单POST.

html forms https internet-explorer

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