当我的网络应用程序所依赖的其中一个罐试图从jar中加载属性文件时,我遇到了麻烦.这是jar中的代码.
static
{
Properties props = new Properties();
try
{
props.load(ClassLoader.getSystemResourceAsStream("someProps.properties"));
} catch (IOException e)
{
e.printStackTrace();
}
someProperty = props.getProperty("someKey");
}
Run Code Online (Sandbox Code Playgroud)
属性文件位于Maven项目的"src/main/resources"目录中.当我在Eclipse中的junit测试中运行此代码时,它执行得很好.当项目使用Maven构建到jar中,并作为依赖项包含在我的Web应用程序中时,它无法找到属性文件.我知道属性文件位于依赖于jar的基本目录中,我不知道如何解决这个问题.
我需要一些关于解决这个问题的最佳方法的建议.
我研究了DROOLS,Java Rule Engine和其他一些.所有这些都是强大的,并且对它们有好处.我不知道哪个(如果有的话)对我来说是最好的选择.
我有一个业务对象.(简化演示)
Person
firstName:String
lastName:String
departMent:String
hireDate:Date
Run Code Online (Sandbox Code Playgroud)
我需要在Web应用程序中编写一个编辑器,以便围绕这些字段构建复杂的规则.我需要支持复杂的嵌套AND/OR逻辑.我只需要基本的运算符,规则应该简单地评估为真或假.如果规则评估为true或false,则将分别执行一个操作.
例如,
firstName CONTAINS"value"AND(lastName EQUALS"input"OR department CONTAINS"input")
我曾想过,也许我应该编写自己的解析器并在我自己的代码中评估逻辑.我不知道该怎么做,任何建议或链接到阅读的东西将不胜感激.我可以研究一种特定的设计模式吗?
你会如何解决这个问题?关于规则引擎的一个保留意见是,它们可能过于复杂而不仅仅是一个简单的问题?
是一个字还是两个字?
我主要是因为我想知道在Java命名中它是"webService"还是"webservice".
我是PL-SQL的新手,并且努力寻找明确的操作文档是嵌套表.请更正任何误用的术语等.
我有一个嵌套的表类型,我用它作为存储过程的参数.
CREATE OR REPLACE TYPE "STRARRAY" AS TABLE OF VARCHAR2 (255)
Run Code Online (Sandbox Code Playgroud)
在我的存储过程中,表被初始化并填充.假设我有一个VARCHAR2变量,如果嵌套表中存在varchar,我想知道true或false.
我试过了
strarray.exists('somevarchar')
Run Code Online (Sandbox Code Playgroud)
但我得到一个ORA-6502
除了迭代之外,还有更简单的方法吗?
FOR i IN strarray.FIRST..strarray.LAST
LOOP
IF strarray(i) = value THEN
return 1;--found
END IF;
END LOOP;
Run Code Online (Sandbox Code Playgroud) 我想运行jetty:在调试模式下运行,并在环境变量中设置MAVEN_OPTS.但它接缝像硬编码MAVEN_OPTS.是否可以在命令行中设置MAVEN_OPTSmvn MAVEN_OPTS=...
谢谢.
<action name="actionA" class="com.company.Someaction">
<result name="success" type="redirect-action">
<param name="actionName">OtherActionparam>
<param name="paramA">${someParams}</param>
<param name="paramB">${someParams}</param>
<param name="aBoatLoadOfOtherParams">${aBoatLoadOfOtherParams}</param>
</result>
</action>
Run Code Online (Sandbox Code Playgroud)
在上面的动作映射中,我将从SomeAction重定向到OtherAction.我遇到了问题,因为不幸的是我需要在两个操作之间传递大量数据.IE7只允许GET请求像2k一样,当响应调用另一个动作的get请求时,当我刚刚超过该限制时它会爆炸.
我是否可以设置此重定向,最终将POST调用到其他操作?
我正在创建一个基本的Struts2,Maven webApp,并在部署到Tomcat 6或Jetty时收到此错误.有没有人见过这个?
2010-07-29 15:33:38.801::WARN: failed struts2
Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar:file:/C:/workspaces/test/test/target/work/webapp/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:208)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:131)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:589)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:510)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:110)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:357)
at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:293)
at org.mortbay.jetty.plugin.Jetty6RunWar.execute(Jetty6RunWar.java:67)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at …Run Code Online (Sandbox Code Playgroud) 我有一个Struts2(2.1.8.1)Web应用程序.我的web.xml看起来像,
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
这配置为将所有请求映射到struts过滤器.我想在我的Web应用程序中添加一个servlet.我想将具有特定url模式的所有请求发送到该servlet.我希望其他所有东西都能进入我的struts servlet.
我知道我只能将"*.action"映射到struts servlet,但我讨厌.action就在我所有URL的末尾.
是否可以按顺序为所有列提供方向一次?
即
select *
from my_table
order by name desc, type desc
Run Code Online (Sandbox Code Playgroud)
你能用"desc"一次写同样的东西吗?
也许类似的东西?(这不起作用)
select *
from my_table
order by (name, type) desc
Run Code Online (Sandbox Code Playgroud) 这是我们的一个代码评论中的一个主题,我想要更多的意见.
假设我正在编写一个允许我将简单的Person对象插入数据库的服务.
public class Person
{
private String name;
....
}
Run Code Online (Sandbox Code Playgroud)
我们有一个简单的VerifyNotNull方法抛出IllegalArgumentException.
你会采取哪种方式和原因.
选项1:
在Person对象的构造函数中验证不为null.
public Person(String name)
{
VerifyNotNull(name);//throws illegal arg exception if name is null
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
选项2:
允许Person用null构造,在addPerson调用时验证不为null.
public class PersonService
{
public void addPerson(Person personToAdd)
{
VerifyNotNull(personToAdd.getName());//throws illegal arg exception
//add code
}
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢在构造函数中抛出Exceptions的想法.对我来说选项2感觉正确,但我不知道如何解释或证明它.
在构造函数中抛出异常是否可以接受?
谢谢你的帮助!
java ×5
maven-2 ×3
struts2 ×3
oracle ×2
oracle10g ×2
action ×1
classloader ×1
maven ×1
object ×1
oop ×1
plsql ×1
post ×1
properties ×1
redirect ×1
resources ×1
rule-engine ×1
rules ×1
soa ×1
sql ×1
sql-order-by ×1
struts ×1
terminology ×1
web-services ×1