我正在尝试使用正则表达式替换String中的最后一个点.
假设我有以下字符串:
String string = "hello.world.how.are.you!";
Run Code Online (Sandbox Code Playgroud)
我想用感叹号替换最后一个点,结果是:
"hello.world.how.are!you!"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了使用该方法的各种表达,String.replaceAll(String, String)没有任何运气.
是否有工具或浏览器插件(不确定Firebug是否可以执行此操作),它将允许您打开网页,然后使用工具/插件使用xpath查询进行搜索,它将突出显示与您的查询匹配的屏幕上的内容?
这个问题与我提出的另一个问题有关,但是为什么你会使用openSession()而不是getCurrentSession()的原因是什么?我知道您将使用openSession()以便您可以自行管理会话的关闭和刷新,但是,为什么要手动执行此操作?
当我想在当前会话中隔离执行事务时我使用了openSession(),虽然我不确定这是否正确使用了openSession().
为什么要打开多个会话?
有没有办法检索由SessionFactory?管理的所有表的名称?例如,通过添加的所有表格AnnotationConfiguration.addAnnotatedClass(...))?
是否可以允许用户从禁用的JTextField中复制文本?目前,如果我有一个禁用的文本字段,则用户无法选择要复制并粘贴到另一个应用程序的文本.
这是我之前发布的帖子的扩展.
总结一下发生了什么:
作业没有太大作用,但直接调用控制器生成PDF并发送电子邮件.我打电话给控制器来完成工作,因为我正在使用PDF模块(当前)需要HTTP请求作为其PDF处理的一部分.以下是我通过Job调用控制器的方法:
WS.url( "我的/ URL /是/点/到/的/控制器")得到().
我之前关于包含高图JS图表的PDF模板的问题在于它生成了图表客户端,这对于PDF生成来说已经太晚了,因此我的PDF生成减去了图表.为了解决这个问题,我现在使用highcharts-serverside-export来生成图表服务器端
如果我使用上面的相同类并在浏览器中呈现模板(即直接通过控制器并忽略Job),则会在服务器端创建图表,并在浏览器中正确呈现视图.
我通过调用另一个控制器来生成模板中的图表,如下所示:
<img src="@{ChartGenerator.go()}">
Run Code Online (Sandbox Code Playgroud)
ChartGenerator控制器基本上按照highcharts-serverside-export文档构建图表服务器端,并调用Play的renderBinary方法.
正如我所说,模板在浏览器中使用服务器端生成的图表呈现正常.但是,当通过每小时执行一次的Job时,ChartGenerator.go()调用似乎不起作用.控制台吐出这个:
INFO ~ /chartgenerator/go is not a URL; may be relative.
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法如何解决这个问题?我已经证明它可以减去工作,现在需要弄清楚为什么当通过工作时,它似乎不起作用.
编辑:根据Pere的建议,我的模板现在通过执行此操作调用ChartGenerator类(请注意double @'s):
<img src="@@{ChartGenerator.go()}">
Run Code Online (Sandbox Code Playgroud)
我认为这让我更进一步,现在这在日志中吐出来:
Error during job execution (fun.EmailJob)
Execution exception (In /fun/EmailJob.java around line 19)
RuntimeException occured : java.util.concurrent.ExecutionException: java.util.concurrent.TimeoutException: No response received after 60000
...
09:23:54,687 WARN ~ bad URL given: http://<full url>/chartgenerator/go
java.net.SocketTimeoutException: Read timed out
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器中点击http:// <full url>/chartgenerator/go的URL,则会在浏览器中正确呈现highcharts png文件.正如预期的那样,即使在这个double @ change之后,如果我在浏览器中渲染模板(没有pdf'ing),模板也会正确地呈现服务器端生成的图表.
编辑#2: …
我目前有一个看起来像这样的设置:
弹簧security.xml文件:
<http auto-config="true">
<intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login"
default-target-url="/main.html"
authentication-failure-url="/failedLogin"/>
<logout logout-url="/logout.html" logout-success-url="/login" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="foo" password="bar" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)
web.xml中:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
这一切似乎都按预期工作,但是,在特殊情况下,如果用户传入特殊令牌,我希望绕过登录页面.因此,目前,如果用户访问诸如此类的URL /dog,他们将看到登录页面,如果他们传递了凭据,foo/bar那么他们将登录并查看对应的页面/dog.
我希望能够使用诸如/dog?token=abcd绕过登录屏幕并直接将其带到相应页面的URL /dog.如果他们提供无效令牌,那么他们只会看到拒绝访问的页面.
我在IntelliJ 9(终极版)中启用了UI Designer插件.我发现了一些没有真正显示太多的旧flash 教程,它基于IntelliJ 6(!).是否有任何文档或教程可以通过使用UI Designer的swing设备进行,该设计器比旧的IntelliJ 6版本更新近和/或更复杂?
我有一个桌面应用程序,当有人按下按钮时,我希望它启动另一个执行类主要方法的JVM.我的桌面应用程序已经依赖于包含具有我想要执行的主方法的类的jar.
目前我有以下代码,但是,我希望他们这样做是一种更优雅的方式:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("java -jar another.jar");
Run Code Online (Sandbox Code Playgroud)
我知道我也可以使用ProcessBuilder.
有没有这样的方法(原谅伪代码):
Jvm.execute(Main.class);
Run Code Online (Sandbox Code Playgroud)
由于我想调用的Main类已经存在于我的类路径中,因此必须java通过Runtime 运行命令才会感到奇怪.
假设我有一个桌面应用程序,可以充当一堆汽车的车库:
@Entity
public class Garage {
private List<Car> cars = new ArrayList<Car>();
...
}
Run Code Online (Sandbox Code Playgroud)
桌面应用程序有一个"模拟"按钮,可以启动一个新线程并开始调用Garage,Car,Wheel等方法.此模拟可能需要长达10分钟才能运行.目前我有一个看起来像这样的课程:
beginTransaction();
Garage garage = garageDao.findGarage(1);
List<Car> cars = garage.getCars();
for (Car car : cars) {
// call methods on the car to lazily fetch other things like wheels...
}
commitTransaction();
Run Code Online (Sandbox Code Playgroud)
此代码只执行"读取"而从不"写入"
因此,上述情况可能需要很长时间,具体取决于汽车需要多少服务.在发生上述情况时,用户可以继续使用桌面应用程序.他们可能会选择更改上述交易中使用的汽车颜色.
我的问题是,上述长期交易是否会阻止汽车颜色的变化?即,用户在桌面应用程序中更改汽车的颜色将被阻止提交更改,直到长事务完成?