我正在编写一个返回base64编码的PDF文件的Web服务,所以我的计划是在响应中添加两个标头:
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Run Code Online (Sandbox Code Playgroud)
我的问题是:是Content-Transfer-Encoding一个有效的HTTP标头?我认为它可能只适用于MIME.如果没有,我应该如何制作我的HTTP响应以表示我正在返回base64编码的PDF?谢谢.
编辑:
看起来HTTP不支持此标头.来自RFC2616第14节:
注意:虽然Content-MD5的定义与HTTP的实体主体的RFC 1864完全相同,但Content-MD5到HTTP实体主体的应用程序有几种不同于其应用程序的MIME实体 - 身体.一个是,与MIME不同,HTTP不使用Content-Transfer-Encoding,并且使用Transfer-Encoding和Content-Encoding.
我应该设置标题的任何想法?谢谢.
编辑2
在这个PHP参考手册页的注释中找到的许多代码示例似乎表明它实际上是一个有效的HTTP头:
我正在编写一个需要用户登录的Spring Web应用程序.我的公司有一个Active Directory服务器,我想为此目的使用它.但是,我在使用Spring Security连接服务器时遇到问题.
我正在使用Spring 2.5.5和Spring Security 2.0.3以及Java 1.6.
如果我将LDAP URL更改为错误的IP地址,它不会抛出异常或任何东西,所以我想知道它是否甚至尝试连接到服务器开始.
尽管Web应用程序启动得很好,但我在登录页面中输入的任何信息都会被拒绝.我以前使用过InMemoryDaoImpl,它工作正常,所以我的应用程序的其余部分似乎都配置正确.
这是我与安全相关的bean:
<beans:bean id="ldapAuthProvider" class="org.springframework.security.providers.ldap.LdapAuthenticationProvider">
<beans:constructor-arg>
<beans:bean class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator">
<beans:constructor-arg ref="initialDirContextFactory" />
<beans:property name="userDnPatterns">
<beans:list>
<beans:value>CN={0},OU=SBSUsers,OU=Users,OU=MyBusiness,DC=Acme,DC=com</beans:value>
</beans:list>
</beans:property>
</beans:bean>
</beans:constructor-arg>
</beans:bean>
<beans:bean id="userDetailsService" class="org.springframework.security.userdetails.ldap.LdapUserDetailsManager">
<beans:constructor-arg ref="initialDirContextFactory" />
</beans:bean>
<beans:bean id="initialDirContextFactory" class="org.springframework.security.ldap.DefaultInitialDirContextFactory">
<beans:constructor-arg value="ldap://192.168.123.456:389/DC=Acme,DC=com" />
</beans:bean>
Run Code Online (Sandbox Code Playgroud) INNER JOIN查询和隐式连接查询(在FROM关键字后列出多个表)之间有什么区别?例如:
给出以下两个表:
CREATE TABLE Statuses(
id INT PRIMARY KEY,
description VARCHAR(50)
);
INSERT INTO Statuses VALUES (1, 'status');
CREATE TABLE Documents(
id INT PRIMARY KEY,
statusId INT REFERENCES Statuses(id)
);
INSERT INTO Documents VALUES (9, 1);
Run Code Online (Sandbox Code Playgroud)
这两个SQL查询之间有什么区别?从我完成的测试中,他们返回相同的结果.他们做同样的事情吗?是否存在返回不同结果集的情况?
SELECT s.description FROM Documents d, Statuses s WHERE d.statusId = s.id AND d.id = 9;
SELECT s.description FROM Documents d INNER JOIN Statuses s ON d.statusId = s.id WHERE d.id = 9;
Run Code Online (Sandbox Code Playgroud) 当我打开一个POM文件并单击底部的"Dependency Hierarchy"选项卡时,它会给出错误"Project read error".它适用于同一工作区中的其他项目,而不是这个项目.有任何想法吗?

编辑
回应@Yhn的回答.
我想知道它是否与我在使用Maven 3构建项目时遇到问题有关,因为显然一些传递依赖项是为Maven 1配置的,Maven 3不支持(这是我的理论,无论如何,基于一些错误信息).我可以使用Maven 2构建项目,但我仍然收到如下消息:
Downloading: http://dist.codehaus.org/mule/dependencies/maven2/org/codehaus/xfie/bcprov-jdk14/133/bcprov-jdk14-133.pom
[INFO] Unable to find resource 'org.codehaus.xfire:bcprov-jdk14:pom:133' in repsitory mule (http://dist.codehaus.org/mule/dependencies/maven2)
Run Code Online (Sandbox Code Playgroud)
但它必须能够找到这些依赖关系,因为它可以很好地下载JAR并构建应用程序.似乎问题是依赖关系没有与它们相关联的POM文件,这也许是为什么它们不能与Maven 3一起使用的原因.这也可能是我无法在Eclipse中查看依赖关系层次结构的原因.
编辑2
我通过转到"配置>转换为Maven项目"将项目转换为Maven项目.当我打开POM文件时,我看到错误:
ArtifactDescriptorException: Failed to read artifact descriptor for woodstox:wst (Click for 140 more)
(woodstox:wst是该项目的另一个传递依赖)."标记"视图中出现错误,表明我的项目中似乎存在每个依赖性和传递依赖性.但是,我可以通过执行"运行方式> Maven构建"来成功构建项目.(编辑:这可能是因为该项目没有Java源代码,但依赖关系的JAR正确地出现在最终的WAR中.)依赖关系层次结构仍然提供相同的错误 - "项目读取错误".
关于"无法找到资源"消息 - 但这只出现在少数传递依赖项中.该项目具有更多的传递依赖项,但这些消息不会出现.看起来,因为依赖项没有POM文件,Maven每次构建项目时都会尝试搜索它们.这是正常的没有POM ??
如何获得回购经理?这是否必须安装在公司的Maven存储库中,还是可以在自己的工作站上安装?
有没有办法将所有stdout输出记录到Tomcat中的catalina.log文件?(即所有打印到的System.out.println())
运行时打开的控制台窗口TOMCAT/bin/startup.bat显示stdout的输出,但它没有保存到TOMCAT/logs/catalina.<date>.log.
我的具体问题是我在log4j中定义了一个控制台appender以输出到控制台.这些日志消息在Tomcat控制台窗口中正确显示,但它们不会写入catalina.log.我在Windows上运行Tomcat 5.5.谢谢.
编辑:
这是我的log4j.properties文件.它位于TOMCAT/webapps/app/WEB-INF/classes/log4j.properties:
log4j.rootCategory=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{ABSOLUTE} %-5p %c{1}]: %m%n
Run Code Online (Sandbox Code Playgroud) 我的同事和我在使用Firefox 3.0.6访问我们正在开发的Java 1.6.0 ___ 11 Web应用程序时遇到了问题.从1-30分钟进入会话,一切正常......但最终,连接失败并出现以下错误:
Secure Connection Failed
An error occurred during a connection to 10.x.x.x.
Cannot communicate securely with peer: no common encryption algorithm(s).
(Error code: ssl_error_no_cypher_overlap)
IE运行正常.Firefox会在Windows和Fedora中引发错误,因此问题似乎与操作系统无关.Java EE应用程序在Tomcat 6.0.16服务器上运行.所有页面都使用TLS 1.0通过带有mod_nss的Apache 2.2.8 HTTP服务器进行加密.
我们的Apache服务器配置为拒绝SSL 3.0连接.我们有一个假设是Firefox可能正在尝试建立SSL 3.0连接......但为什么呢?
基于一些谷歌搜索,我们尝试了以下的事情,但没有成功:
使用Firefox 2.x(有些人报告了2.x工作但3.x没有的情况):
启用SSL2
禁用SSL3
禁用OCSP(工具>选项>高级>加密>验证)
确保客户端计算机的防病毒/防火墙没有阻塞或扫描端口443(https端口)
有任何想法吗?
在PHP中,如果您有一个包含二进制数据的变量,那么如何从数据中获取特定字节?例如,如果我有一些30字节长的数据,我如何获得前8个字节?
现在,我正在使用substr()函数将其视为字符串:
$data = //...
$first8Bytes = substr($data, 0, 8);
Run Code Online (Sandbox Code Playgroud)
使用substr二进制数据是否安全?
还是我应该使用其他功能?
我正在使用Java 1.6为Mac编写Java Swing应用程序.我已经阅读了许多教程,指导您如何更好地将Java应用程序与OS X集成,但有一件事我无法工作.我无法显示应用程序名称(Mac菜单栏中的第一个粗体菜单项).默认情况下,显示主类的完全限定类名,我无法更改它.
该网站说您必须设置以下属性:
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
Run Code Online (Sandbox Code Playgroud)
但这不起作用(我运行10.6,所以可能属性名称改变了?).
当我在XCode中创建一个新的Java项目(我通常使用Eclipse)时,这个名字会以某种方式神奇地被设置!(它以一个可运行的样板应用程序启动你)我已经在XCode项目周围查看了这是如何完成的,但我无法理解它!
我的猜测是,如果你将Java应用程序包装在Mac*.app包中,它只设置应用程序名称,但是想知道是否有人知道答案.谢谢.
编辑:有趣的是,如果我将应用程序打包在一个可运行的JAR文件中,它会设置应用程序名称,但如果我从Eclipse运行它,则不会.
我有一个父类,它定义了一个chainer方法的集合(返回"this"的方法).我想定义多个子类,这些子类包含自己的chainer方法,但也"覆盖"父方法,以便返回子类的实例而不是父类.
我不想在每个子类中重复相同的方法,这就是为什么我有一个包含所有子类共享的方法的父类.谢谢.
class Chain {
public Chain foo(String s){
...
return this;
}
}
class ChainChild extends Chain {
//I don't want to add a "foo" method to each child class
/*
public ChildChain foo(String s){
...
return this;
}
*/
public ChainChild bar(boolean b){
...
return this;
}
}
ChainChild child = new ChainChild();
child.foo().bar(); //compile error: foo() returns a "Chain" object which does not define the bar() method.
Run Code Online (Sandbox Code Playgroud) 我有一个Web应用程序,它使用驻留在TOMCAT_HOME/common/lib中的库.此库在类路径的根(在名为ApplicationConfig的类中)中查找属性文件:
ApplicationConfig.class.getResourceAsStream("/hv-application.properties");
Run Code Online (Sandbox Code Playgroud)
我的Tomcat Web应用程序包含此属性文件.它在WEB-INF/classes中,它是classpath的根本吗?但是,在运行时,当它尝试加载属性文件时,它会抛出异常,因为它无法找到它(getResourceAsStream返回null).
如果我的应用程序是一个简单的独立Java应用程序,那么一切正常.Tomcat会导致getResourceAsStream方法采取不同的行为吗?我知道那里有很多类似的问题,但不幸的是他们都没有帮助过.谢谢.