我有一个简单的java应用程序,它从当前包中加载属性文件.
this.getClass().getResourceAsStream("props.properties");
Run Code Online (Sandbox Code Playgroud)
当我想要的属性文件在当前包中时,这可以正常工作.但是,我想将此应用程序打包为JAR,并使用我使用它的新属性文件定义和覆盖.有没有办法加载类路径上名为"props.properties"的第一个资源?
我希望通过命令行轻松覆盖属性文件:
java.exe -classpath props.properties;myJar.jar com.test.MyApp
Run Code Online (Sandbox Code Playgroud)
我不想解压缩JAR并修改属性文件来改变一些东西.我觉得我错过了一些明显的东西......
这可能是一个基本的CSS问题,但我不熟悉CSS,似乎只是在圈子里.
这是我的英文版本:我有一个400px的固定宽度选择元素.每个选项的文本不适合400px宽度.我没有得到水平滚动条,它只是切断文本.如何获得滚动条?
这是我在HTML/CSS中的内容:
<div>
<select style="width=400px">
<option>this text is too wide to fit and gets cut off.....</option>
...
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了溢出属性,但我要么错误地使用它,要么它对select元素不起作用.
如何获得水平滚动条?
我已经看到了关于此的其他问题(这里,这里,这里),但我对任何解决方案都不满意,所以我再问一遍.我正在启动一个Web应用程序,它将利用来自多个提供商(Google,Facebook,Twitter,Yahoo)的OAuth进行身份验证.我正在努力寻找适合用于本地开发环境和生产环境的配置.
我发现的主要解决方案是在每个提供商中注册多个应用程序,为每个提供商接收不同的消费者密钥和秘密:
"我的应用程序生产" - 带有http://www.myapp.com/callback的回调URI
"我的应用程序开发" - 带有http://local.myapp.com/callback的回调URI
添加到您的本地主机入口文件指向local.myapp.com到127.0.0.1和你的应用程序使用基于环境的正确消费键一些配置,你是好去,对不对?
但我的应用程序是响应式的,我需要测试我的PC上运行的开发环境,从我的iPhone和iPad等多个其他设备运行,这两个设备都无法解析开发回调URI.
假设我的网络上已有DNS服务器,并且能够为其添加条目local.myapp.com而不是我的本地主机文件,现在可以从网络上的任何设备访问我的开发实例.
但我的开发团队都在同一个本地网络上运行.现在local.myapp.com指向每个人的相同IP.让我们回到在每个开发人员的计算机上设置hosts文件,这样他们就可以独立于工作站内工作.现在没有人可以再次从他们的iPhone测试他们的开发实例.对于每个开发人员而言,向提供者注册应用程序似乎不是正确的答案,因此他们可以指定唯一的回调URI.
通常情况下,当我在杂草中找到一个看似简单的问题的复杂解决方案时,通常意味着我做了一些根本错误的事情.我错过了关于OAuth的一些内容,是不是打算像这样使用?我很想完全废弃OAuth,只需要使用OpenID(不需要注册应用程序注册,并且可以在应用程序中指定回调URI),但后来我失去了Facebook和Twitter中的两个重要人物.我真的不需要任何用户的数据,如果它可用,那就太好了.有人能跟我说说OAuth吗?
我有一个简单的Java类,我用JAXB进行注释:
class Foo {
@XmlAnyElement(lax=true)
List<Object> any;
}
Run Code Online (Sandbox Code Playgroud)
其中产生以下架构:
<xs:complexType name="foo">
<xs:sequence>
<xs:any processContents="lax" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
有没有办法为<any>元素设置名称空间属性,以便它生成如下:
<xs:any namespace="##targetNamespace" processContents="lax" maxOccurs="unbounded"/>
Run Code Online (Sandbox Code Playgroud) 我正在我的java Web应用程序中执行XSLT转换,没有任何问题,如下所示:
Transformer transformer = TransformerFactory.newInstance().newTransformer(xslSource);
transformer.transform(xmlInput, xmlOutput);
Run Code Online (Sandbox Code Playgroud)
在我的XSLT转换中,我现在正在添加对document()函数的调用以从RESTful Web服务加载响应:
<!-- do stuff -->
<xsl:variable name="url">
http://server/service?id=<xsl:value-of select="@id"/>
</xsl:variable>
<xsl:call-template name="doMoreStuff">
<xsl:with-param name="param1" select="document($url)/foo"/>
</xsl:call-template>
Run Code Online (Sandbox Code Playgroud)
好酷,没问题.但现在,我想从java中的utils类中读取基本URL并将其传递给样式表.
//java
String baseUrl = myUtils.getBaseUrl();
<!-- xslt -->
<xsl:variable name="url">
<xsl:value-of select="$baseUrl"/>
<xsl:text>/service?id=</xsl:text>
<xsl:value-of select="@id"/>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何建议?我的Java utils类从类路径上的myApp.properties文件加载值,但我不确定我是否可以从XSLT中使用它...
我正在尝试在我们的Tomcat Java Web应用程序中发生内存泄漏,并且认为我在向其中一个JSP发出重复请求时发现了它.然而,在将其拆分为单个空的JSP后,将其放入在jdk1.6上运行的开箱即用的Tomcat 6.0.37实例中,我仍然看到同样的事情.
我正在启动Tomcat,最大堆大小(-Xmx)为256m,并且在我的测试类下面发出大约282,000个请求后,堆空间用完了.
为了比较,我还创建了一个HttpServlet,它与JSP做了同样的事情,并修改了我的测试客户端来调用它,而且它将全天运行而不会耗尽内存.
我已经开始尝试分析堆来弄清楚这里发生了什么,但并没有真正到达任何地方.Soooo,这里发生了什么?
测试JSP
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ page contentType="text/plain"%>
<% System.out.println("Page requested: " + new Date()); %>
This is a test response
Run Code Online (Sandbox Code Playgroud)
Java测试客户端
public static void main(String[] args) throws Exception {
int i=0;
while(true) {
java.net.URL url = new java.net.URL("http://localhost:8080/test.jsp");
InputStream is = url.openStream();
while(is.read() != -1) {
//nothing, just read the stream
}
is.close();
System.out.println("Requests made: " + i++);
}
}
Run Code Online (Sandbox Code Playgroud)