如果您需要在一个方法中返回两件事,那么最好的方法是什么?
我理解一个方法应该只做一件事的理念,但是说你有一个运行数据库选择的方法,你需要拉两列.我假设您只想遍历数据库结果集一次,但是您想要返回两列值的数据.
我提出的选项:
任何人都可以推荐一个好的Java开源库来构建一个简单的SOAP Web服务客户端吗?我正在寻找可在Java 5 SE环境中运行的具有最小依赖性和配置的东西.升级到Java 6并不是这个项目的一个选项,如果我可以避免使用它,我宁愿避免使用完整的J2EE容器.我不需要发布和服务,只需要消费.
我目前正在使用Axis2,但我必须提供大约15MB的额外罐子才能在没有NoClassDefFoundError的情况下对Web服务进行简单的调用,而且我正在寻找一些不那么臃肿的东西.
我也看过CXF,但我不愿意使用它,因为它与Spring紧密耦合.Spring不是100%的交易破坏者,但如果可能的话,我宁愿避免它.
有什么建议?
在我对它们的有限经验中,可执行要求(即将所有要求指定为破坏的自动化测试)已被证明是非常成功的.我参与了一个项目,其中我们非常重视创建高级自动化测试,这些测试运用了给定用例/用户故事的所有功能.在我们开始这种练习之后,对我来说真的很容易开发.在编写测试后,实现功能变得非常容易,我们能够对系统进行重大架构更改,并且全世界都相信所有内容仍然与昨天一样.
我们遇到的最大问题是管理这些类型测试的工具不是很好.我们使用Fitnesse相当多,因此我现在讨厌Fit框架.
我想知道1)如果有其他人有使用这种类型的测试驱动的需求定义的经验,2)你们用什么工具来促进这一点.
我工作的地方,我们正在做大量的Java服务和客户用其它各种语言之间的远程对象转移的项目.鉴于我们目前的限制,我已经决定要看看它会采取基于现有的Java类代码.基本上,我需要一个.class文件(或它们的集合)解析字节码,以确定所有的数据成员,或许getter/setter方法,然后写的东西,可以在不同的语言输出的代码来创建一个类具有相同的结构.
我不是在寻找像JAD这样的标准反编译器.我需要能够获取.class文件并创建其数据成员和方法的对象模型.这有可能吗?
是否可以告诉标准Java EE servlet容器解释并将文件呈现为JSP,即使它没有.jsp扩展名?
假设我在WAR的根目录中有一个名为foo.xyz的文件.该文件包含一些jstl逻辑,正如您在.jsp文件中所期望的那样.如果我请求http://myserver/myapp/foo.xyz,我将看到该文件的文字代码呈现为文本.有没有办法配置Web应用程序,使其在不更改文件扩展名的情况下使用JSP解释器呈现文件?
请不要问我为什么要这样做.约束很复杂.
如果我有一个需要实现接口的类,但该接口上的一个或多个方法在这个特定类的上下文中没有意义,我该怎么办?
例如,假设我正在实现一个适配器模式,我想通过包装一些不可变对象并将其数据作为键/值对公开来创建一个实现java.util.Map的包装类.在这种情况下,put和putAll方法没有意义,因为我无法修改底层对象.所以问题是这些方法应该做什么?
我正在尝试将特定工件(及其所有依赖项)下载到计算机的本地存储库.
似乎使用依赖: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)
我的问题是:
dependency:get目标的错误吗?以下代码基于java.util.zip.Deflater的javadocs中给出的示例.我所做的唯一更改是创建一个名为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) 我正在尝试创建一个引用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)是否有更好的方法来编写这样一个引用临时表的函数?
我有一个网站,其中每个页面都通过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.
java ×4
automation ×1
bytecode ×1
compression ×1
decompiling ×1
deflate ×1
execute ×1
forms ×1
function ×1
html ×1
https ×1
java-ee ×1
jsp ×1
maven ×1
postgresql ×1
process ×1
return-value ×1
servlets ×1
soap ×1
syntax-error ×1
temp-tables ×1
testing ×1
web.xml ×1
zip ×1