嵌入在JDK 6中的Http Server是开发Web服务的一个很大的帮助,但是我遇到了我发布了一个Endpoint然后代码崩溃并让服务器运行的情况.
一旦丢失对它的引用(或已发布的端点),如何关闭嵌入式服务器?
我正在尝试使用Java regexp来匹配跨越多行的模式.该模式有一行以'A'开头,后跟正好50个字符,然后是一行或多行以'B'开头,后跟正好50个字符:
A... // exactly 50 chars after the A
B...
B...
Run Code Online (Sandbox Code Playgroud)
但是,Java正则表达式似乎并不支持这一点.
这是一个适用于A和B一行的正则表达式:
A.{50}[\\n[\\n\\r]]B.{50}[\\n[\\n\\r]]
Run Code Online (Sandbox Code Playgroud)
这是相同的正则表达式修改,以找到一个或多个B行:
A.{50}[\\n[\\n\\r]][B.{50}[\\n[\\n\\r]]]+
Run Code Online (Sandbox Code Playgroud)
但是,此正则表达式仅查找第一个B行上的前导B字符.
我[\\n[\\r\\n]]用来处理DOS和UNIX换行.启用MULTILINE模式不会影响结果.
问题似乎是当我使用带有'+'的括号将B行的正则表达式转换为可捕获多行的字符类时.
有没有关于Java regexp的东西,不允许'.' 字符或花括号来指定精确的行长度?
我有一个实用程序类,如下所示.我希望能够将此类与RESOURCE_LOCAL或JTA持久性单元一起使用.如果我将persistence.xml从JTA更改为RESOURCE_LOCAL,则不必更改代码.
我尝试使用EntityManager.getTransaction()来查看是否存在活动事务,但是如果正在使用JTA,则调用getTransaction()会抛出异常.我可以使用try/catch包围对getTransaction()的调用,但我不想为此采用异常处理.EntityManager.getProperties()不显示任何指示JTA或RESOURCE_LOCAL的内容
我需要一些方法来告诉EntityManager(或EntityManagerFactory)在下面的代码中使用什么类型的持久性单元.
public class CredentialsUtil {
public static final String VGBD_PU = "VGDBpu";
static Logger logger = Logger.getLogger(CredentialsUtilStatic.class);
static EntityManagerFactory emf = Persistence.createEntityManagerFactory(VGBD_PU);
public static final String sharedKey="pgpsympwd";
public static String getPassword(String username) {
String selectStr = "select pgp_sym_decrypt(pgpsympassword, '" + sharedKey + "') from credentials where username='" + username + "'";
EntityManager em =null;
String password = "";
try {
em = emf.createEntityManager();
java.util.Map<java.lang.String,java.lang.Object> propMap = em.getProperties();
logger.info(propMap.keySet().size() + " properties");
for (String key : propMap.keySet())
logger.info(key + …Run Code Online (Sandbox Code Playgroud) 我使用Indigo和m2e 1.0创建了一个多模块项目.其中一个子模块依赖于另一个.这一切都在maven下正确构建.
但是,Eclipse无法从依赖项.jar中找到此模块使用的任何类.项目属性显示Maven依赖项下的工件,但它不显示实际的.jar文件本身.
我为此项目添加了Maven菜单的依赖项.
.project和.classpath在某些时候自动生成.我没有必要运行mvn eclipse:eclipse或mvn eclipse:m2e(或者m2e的目标)..classpath中没有依赖的.jar,但它确实有org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER.
我已经尝试了Maven菜单下的所有选项(更新依赖项,更新配置)并刷新项目.我已关闭并重新打开Eclipse.它仍然显示错误.
这使得Eclipse作为多模块项目中的Java编辑器毫无价值.我可以在.classpath中手动添加依赖项.jar,但这违背了使用m2e集成Eclipse和Maven的目的.
在Eclipse中有这个解决方案吗?
谢谢.
我有一个 Maven 项目,它将 Swing 客户端构建为 jar-with-dependencies.jar 文件。我想使用 Java Web Start 来分发这个 my.gui-0.1.0-jar-with-dependencies.jar 文件。为此,我创建了一个单独的 Maven 项目,该项目使用 JNLP 工件构建了一个 .war 文件。我需要在这个 .war 文件中包含 my.gui-0.1.0-jar-with-dependencies.jar。
我无法确定 jar-with-dependencies.jar 文件的 Maven 坐标。如果我将 Maven 坐标用于 GUI 项目,它会将 GUI 项目的依赖 .jar 文件放在 WEB-INF/lib 中,这不是我想要的。我需要在 .war 文件中包含 my.gui-0.1.0-jar-with-dependencies.jar 文件本身。(我想它可能在 WEB-INF/lib 中。)
我如何告诉 Maven 依赖项是 jar-with-dependencies.jar 文件本身?
如果除了告诉 Maven 包含 jar-with-dependencies.jar 本身的机制之外,还有另一种方式也可以工作。jar-with-dependencies.jar 必须位于我为支持 Java Web Start 而创建的 .war 文件中。
我知道有一个 Maven Webstart 插件,但这看起来像是一场噩梦,所以我只是自己构建一个 .war 文件,其中包含必要的 JNLP 工件。
有一个由年轻的杨优秀的文章,介绍了如何使用的wsimport创建具有异步Web服务调用Web服务客户端工件.异步要求WSDL具有标记
<enableAsyncMapping>true</enableAsyncMapping>
在其绑定部分.如果您使用自下而上的方法和JAX-WS带注释的Java类,则无法直接在WSDL中执行此操作,因为WSDL是Web服务器上生成的工件.相反,当在WSDL上执行wsimport时,您使用Ant或Maven等构建工具来包含此绑定.
生成的客户端工件具有返回a的异步方法调用
Future<?>
Run Code Online (Sandbox Code Playgroud)
或者a
Response
Run Code Online (Sandbox Code Playgroud)
这是一个未来.
阅读杨的文章后我的问题是为什么不只是使用Executors和Futures滚动我自己的异步Web服务调用.wsimport创建的工件是否提供了一些我无法通过自己的方法看到的优势?
如果有人对这两种方法都有经验或见解,我将非常感谢您的反馈.
我正在讨论一些设计模式问题,我查看了GoF中Decorator模式的定义和示例.它说
动态地将附加职责附加到对象.装饰器为子类化提供了灵活的替代扩展功能.
它给出了使用继承的装饰器的例子,但绝对不是动态的.
NetObjectives犯同样的错误:
http://www.netobjectives.com/PatternRepository/index.php?title=TheDecoratorPattern
关于装饰器的Portland Pattern Repository讨论表明,对于什么是装饰器而不是装饰器存在混淆
http://c2.com/cgi/wiki?DecoratorPattern
维基百科通过注意装饰器内的委托应该在构造时设置(其他DI技术也可以)来解释这个矛盾
http://en.wikipedia.org/wiki/Decorator_pattern
Decorator模式的所有示例(在Java或C++中)都需要通过继承或通过实现接口来构造静态构造.然而,GoF中的解释说,附加职责是动态附加的.但这完全是错的.
PPR上的评论讨论了可以在运行时添加方法的动态语言,但Java和C++不是动态的,而Decorator的解释并不是说它仅限于Groovy和Lisp等动态语言.
Decorator的正确解释是不是说在不支持动态方法创建的语言中,涉及静态和动态构造?
GoF的解释完全错误,如他们自己的例子所示,或者我误解了什么?
下载完成后,此Dockerfile会挂起:
FROM ubuntu:18.04
MAINTAINER Dean Schulze
ENV JS_CE_VERSION 7.1.0
ENV JS_CE_HOME /opt/jasperreports-server-cp-${JS_CE_VERSION}
ENV PATH $PATH:${JS_CE_HOME}
RUN apt-get update && apt-get install -y wget \
&& wget --progress=bar:force:noscroll -O TIB_js-jrs-cp_${JS_CE_VERSION}_linux_x86_64.run https://sourceforge.net/projects/jasperserver/files/JasperServer/JasperReports%20Server%20Community%20Edition%20${JS_CE_VERSION}/TIB_js-jrs-cp_${JS_CE_VERSION}_linux_x86_64.run \
&& chmod a+x TIB_js-jrs-cp_${JS_CE_VERSION}_linux_x86_64.run \
&& /TIB_js-jrs-cp_${JS_CE_VERSION}_linux_x86_64.run --mode unattended --jasperLicenseAccepted yes --postgres_password Postgres1 --prefix ${JS_CE_HOME} \
&& rm TIB_js-jrs-cp_${JS_CE_VERSION}_linux_x86_64.run \
&& rm -rf ${JS_CE_HOME}/apache-ant ${JS_CE_HOME}/buildomatic \
${JS_CE_HOME}/docs ${JS_CE_HOME}/samples ${JS_CE_HOME}/scripts \
&& apt-get clean
EXPOSE 8080
CMD ctlscript.sh start && tail -f /dev/null
Run Code Online (Sandbox Code Playgroud)
输出的最后几行是
Resolving superb-dca2.dl.sourceforge.net (superb-dca2.dl.sourceforge.net)... 209.61.193.20
Connecting to …Run Code Online (Sandbox Code Playgroud) 在修改此源代码时,我收到此错误autoreconf:
$ autoreconf
configure.ac:240: warning: macro 'AM_PATH_GLIB_2_0' not found in library
configure.ac:246: warning: macro 'AM_PATH_GTK_2_0' not found in library
configure.ac:240: error: possibly undefined macro: AM_PATH_GLIB_2_0
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:246: error: possibly undefined macro: AM_PATH_GTK_2_0
autoreconf: /usr/bin/autoconf failed with exit status: 1
Run Code Online (Sandbox Code Playgroud)
中的行configure.ac是:
AM_PATH_GLIB_2_0([2.7.1], [ac_glib_test="yes"], [ac_glib_test="no"], [gthread])
Run Code Online (Sandbox Code Playgroud)
这是我使用的 autoconf/automake 工具版本的问题,还是其他原因?
谢谢。
我可以使用 REST API 创建一个新用户:
http://localhost:8080/auth/admin/realms/myRealm/users
但用户没有密码。在这篇文章和这篇文章之后,我向 json 添加了凭据,如下所示
{
"firstName":"functest",
"lastName":"functest",
"email":"me@gmail.com",
"enabled":true,
"username":"functest",
"credentials":[{"type":"password","value":"abc123","temporary":false}]
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用用户名和密码登录时,它失败了。当我查看用户界面中的用户凭据时,它确实显示了一行“类型” password,但用户标签为空白。
如何使用 REST API 创建具有密码的用户?