我正在使用Spring 3和Maven.我在我的pom.xml中定义了所有spring模块.
当我使用时<aop:scoped-proxy />,我得到一个错误,说CGLIB丢失了.
好吧......我把CGLIB添加为我的pom中的一个依赖项,它全部运行...
我有点困惑...... Maven是一个依赖管理器......当我使用spring-aop模块时为什么不下载CGLIB?
这不是唯一的情况......为什么有些项目需要显式依赖声明而不是使用Maven传递依赖机制?
我已经使用Spring/GWT使用Flash上传文件.
当我用GWT发送ajax请求并尝试获取用户的ip地址时,我得到一个ipv4地址,如:127.0.0.1
但是当我用flash上传我的文件时(以及在同一个webapp上的post请求)我得到一个ipv6地址0:0:0:0:0:0:0:1
我使用相同的代码来获取用户ip,即:
ServletRequestAttributes att = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
att.getRequest().getRemoteAddr();
Run Code Online (Sandbox Code Playgroud)
问题是我使用一个使用ip地址的签名来确保用户可以上传文件(由于使用flash上传时会话丢失的错误)以及当我使用ajax或Post via flash时ip地址发生变化.
有什么问题,我怎么能得到相同的IP格式?
谢谢
我正在寻找一个好的规则引擎.
我看到它存在两个很好的项目:JBPM和Drools.
我真的不明白两者之间的差异,我不知道什么是理想的工具.
您能否向我提供更多信息以及您对其中一个或另一个的体验,以及您认为最适合管理业务规则的内容.
我正在尝试将我的命名查询放在我的orm.xml中(使用persistence.xml放入META-INF)但是我的orm.xml似乎被hibernate/jpa忽略了.
当我尝试使用em.createNamedQuery("myQuery")创建我的命名查询时,它返回它无法找到此查询.
我使用注释,我想在orm.xml中外化我的命名查询(仅限于此).
这是我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/orm.xml</mapping-file>
<class>com.mysite.Account</class>
<properties>
<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.EhCacheProvider" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="use_sql_comments" value="false" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MYSQLDialect" />
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="20" />
<property name="hibernate.c3p0.timeout" value="300" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
<property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider" />
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
这是我的orm.xml
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" …Run Code Online (Sandbox Code Playgroud) 我从服务器获得了一些我在客户端使用GWT显示的数据.
GWT不是问题,您可以通过ajax调用替换GWT,也可以将其转换为真实的应用程序而不是Web应用程序.
应该在哪里进行排序?在服务器上?或者在客户端上使用javascript,收到数据后再显示它们?
我使用tomcat,我想在我的java代码中获取一个环境变量.
要设置环境变量,我使用此bash命令:
export TOMCAT_OPTS=-Dmy.var=foo
Run Code Online (Sandbox Code Playgroud)
之后我开始tomcat
./startup.sh (in bin folder of tomcat)
Run Code Online (Sandbox Code Playgroud)
在我的java代码中,我尝试获取此变量:
System.getEnv("my.var")
Run Code Online (Sandbox Code Playgroud)
但它返回NULL.
我怎样才能做到这一点 ?
我确切地说,如果我使用maven启动tomcat并使用eclipse环境选项卡,则找到该变量!但我需要在生产模式下像上面一样启动tomcat.
编辑:当直接使用导出MY_VAR时,它在本地运行但不在我的服务器上运行...
我想在我的maven项目中定义一个本地存储库.
我有一个超级pom和几个子模块.我的文件结构是:
/root
/repository
/child
pom.xml
pom.xml
Run Code Online (Sandbox Code Playgroud)
在我的超级pom我定义:
<repository>
<id>my-local-repo</id>
<url>file://${basedir}/repository</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
问题是在我的孩子pom中,我的超级pom中定义的存储库引用/ root/child/repository,因此无法找到依赖项...
有没有办法定义一条始终相对于超级pom的路径?
如果没有,解决问题的最佳方法是什么?
有时清除删除对实体的所有引用都很困难(或性能问题).
例如,我有一个Person对象,它与另一个Person对象有关系.
当我删除一个Person时,我不想在她可以拥有的所有关系中删除这个Person,因为有时这个Person对象不知道它被引用的位置.所以,如果我想清除删除所有引用,我必须做额外的SQL工作,这可能会导致性能问题.
在理想的世界中,我想删除Person对象,当另一个Person对这个Person进行引用时(因为它的关系中有id),只需返回null.
事实是JPA抱怨说
javax.persistence.EntityNotFoundException: No row with the given identifier exists
Run Code Online (Sandbox Code Playgroud)
有没有办法强制JPA返回空引用,在这种情况下不是例外?
这个问题可能与主观问题有关,但这不是真正的问题.
当您开发网站时,您必须知道几点:XSS攻击,SQL注入等.确保所有潜在的攻击都非常困难(并且需要很长时间才能编码).
我总是试图确保我的申请,但我不知道何时停止.
让我们举个相同的例子:像Facebook这样的社交网络.(因为银行网站必须保护其所有数据.)
我看到一些方法:
不保护XSS,SQL注入......当您信任您的用户时,这可以真正完成:私有企业的后端.但是你确保这种类型的应用程序安全吗?
仅当用户尝试访问非拥有数据时才进行安全攻击:这对我来说是最好的方法.
保护所有,所有,全部:保护所有数据(所有者与否):用户无法破坏自己的数据和其他用户数据:这是非常漫长的事情并且非常有用吗?
安全的常见攻击,但不能保护非常严重的攻击(因为与被黑客攻击的机会相比,代码太长了).
好吧,我真的不知道该怎么做......对我来说,我尝试做1,2,4,但我不知道这是不是很好的选择.
不保证所有数据安全是否存在可接受的风险?我可以保护所有数据但是我需要两倍的时间来编写代码吗?风险和"时间就是金钱"之间的企业方法是什么?
谢谢你分享这个,因为我认为很多开发人员都不知道什么是好的限制.
编辑:我看到很多回复谈论XSS和SQL注入,但这不是唯一需要注意的事情.
我们来一个论坛.一个帖子可以写在我们是主持人的论坛中.因此,当您将数据发送到客户端视图时,您可以添加或删除此论坛的"添加"按钮.但是当用户尝试在服务器端保存线程时,您必须检查该用户是否有权点对它(您不能信任客户端视图安全性).
这是一个非常简单的例子,但在我的一些应用程序中,我有一个权限层次结构,这可能非常难以检查(需要大量SQL查询...)但另一方面,它真的很难找到hack(数据在客户端视图中是伪加密的,有很多数据要修改以使黑客运行,黑客需要很好地理解我的应用程序规则才能进行黑客攻击):在这种情况下,我可以检查一下只有表面安全漏洞(非常容易入侵)或者我可以检查非常困难的安全漏洞(但它会降低我对所有用户的性能,并且需要很长时间才能开发).
第二个问题是:我们是否可以"信任"(不开发硬性和长期代码,这会降低性能)在客户端视图上进行非常严格的攻击?
这是另一篇关于这种黑客的帖子:(休眠和集合检查)安全问题:如何保护从客户端到服务器的Hibernate集合?
我有这张桌子:
table name : Account
Fields : id (varchar), name(varchar), other fields...
Run Code Online (Sandbox Code Playgroud)
我想用hibernate机制查询这个表(使用第二个缓存级别).hibernate查询的结果必须是哈希映射,其中键是字段id,值是字段名称.
如何用HQL编写它?
如果我使用map,我只能使用别名,如果我使用带有对象的构造函数,我必须将结果转换为hashmap,这非常耗时.
Example :
Id | name | other fields
1 Jerome ...
2 Steve ...
3 Nick ...
Run Code Online (Sandbox Code Playgroud)
查询的结果必须是一个hashmap:
1>Jerome
2>Steve
3>Nick
Run Code Online (Sandbox Code Playgroud)
谢谢