尝试编译Vaadin WAR时出现此错误:
Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project testvaadin-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我知道这个错误意味着maven无法找到我的web.xml,但在"Book of Vaadin"中它表示在UI类中使用Servlet API 3.0和Annotation时不需要web.xml@WebServlet.
我正在一个单独的配置文件中编译我的widgetset(根据本指南),当我输入此配置文件时,它编译得很好.但是,当我只编译web项目时,我得到上面提到的错误.
是什么赋予了?
我是否以某种方式覆盖了maven的行为?Vaadin甚至没有创建WEB-INF目录.我想我可以创建WEB-INF文件夹并在那里保留一个"ghost"web.xml以保持maven的快乐,但这似乎不对.
我错过了什么吗?
有谁知道这个很好的解决方案?
我需要清理一些事情.我一直在寻找这个问题的答案,但我似乎无法找到我的具体问题的好答案(例如,这个问题正在蚕食答案:servlet和Web服务之间的区别).
根据我的理解,有一些不同的方法可以在"面向MVC"的Web应用程序中实现"请求处理",即"控制器",其中两个是:
HttpServlet,并且使用类似的方法doGet和doPost等.@Controller类(是的,使用a DispatcherServlet).有了这个你使用@RequestMethod GET/ POST等现在问我的问题......
[编辑]:强调关键字
基本上,我想从IntelliJ中导出代码样式设置(默认值很好)并在Checkstyle中使用它们.(这是针对已经设置的maven构建验证类型的东西,但我们想要使用IntelliJ的代码样式,而不是Sun或Googles)
第一步应该是导出IntelliJ代码样式.似乎说起来容易做起来难.
现在,我知道在SO和其他地方都有很多这方面的材料,但是我无法在任何地方找到代码样式的xml文件,甚至在使用"copy to project"或"save as ..."之后也找不到 IntelliJ设置代码样式对话框.
我也尝试通过IntelliJ文件菜单导出代码样式,但它只会从已更改的区域导出代码样式(例如,将标签空间从4更改为2,它只会导出代码样式的"OTHER_INDENT_OPTIONS"部分) .
我应该补充说我正在使用IDEA 14.1.4.
是否可以导出完整的IntelliJ代码样式?
我正在使用Eclipse Juno,Tomcat 7和Maven 3开发一个Web项目,并遇到了一个奇怪的问题.
我有一个单独的项目,我编译一些东西,我在我的Web项目中选择该jar作为依赖项.所以,最终结果是一个.war.现在,当我在Eclipse中的嵌入式Tomcat中运行此战争并点击浏览器上的刷新按钮时,Tomcat说它无法在该jar中找到路径.
在工作区WEB-INF/lib文件夹中,我找到myApplication-common-widgetset-0.0.11-20130926.124257-7.jar
在wtpwebapps/myApplication/WEB-INF/lib下的Tomcat部署目录中,我看到myApplication-common-widgetset-0.0.11-SNAPSHOT.jar 奇怪的是,Tomcat lib下的文件大1kb,文件在我的工作空间中lib大约是22Mb.
我试图将工作区jar复制到Tomcat lib文件夹,一切正常,并作为魅力运行.
更新:
mvn tomcat:run从工作区的命令行运行时,一切正常.可能发生了什么?为什么Eclipse嵌入式Tomcat无法从目标目录中获取所有内容?
我有一个Vaadin 7应用程序需要使用SSO(或更好的企业登录方法?)来通过LDAP目录授权用户.我还需要使用组或"角色"来区分用户和他们在我的应用程序中可以访问的内容.我是登录流程和Vaadin的新手,我现在所拥有的只是我的应用程序中的一个工作登录表单,它授权用户使用我自己制作的虚假"AD类".
所以...
如果我失声,那可能是因为我.如果我知道从哪里开始,我会很乐意读到这个.请帮我把这整块混乱的小块切成小块=)
authentication authorization spring-security vaadin single-sign-on
这可能是一个愚蠢的问题,但我无法找到我想要的答案.另外,我不确定这是一个C++问题还是VS2010问题,但我正在寻找的答案是技术POV,所以我最终在这里.
在VS2010中启动新的控制台应用程序项目时,它会自动包含stdafx.h,而stdafx.h又包含stdio.h.我发现有关stdio.h与iostream的答案或多或少:
stdio.h用于C,iostream用于C++
我不知道这是对还是错,但......
我的问题是:为什么stdio.h仍然自动包含在C++项目中?没有iostream足够吗?
我知道这个网站上有一个非常类似的问题(JavaScript:如何在确认框中默认选择"取消"?),但我觉得我没有得到一个很好的答案,因为我的前提不一样.
问题描述:我正在编写一个Web浏览器Javascript弹出窗口,该窗口应该将一些信息作为输入,用户可以在"OK"之间选择处理信息并继续处理任何内容,或者"取消"关闭窗口并返回无论如何.到现在为止还挺好.问题是有些用户按下弹出窗口右上角的"X"关闭窗口(错误或实际上相信数据已被处理)并弹出第二个对话框(您无法更改此对话框中的文本) )显示"你确定要离开这个页面吗?" - "按OK继续,或按取消停留在当前页面" - 确定/取消...现在,有些用户只需按键盘上的输入键即可,弹出窗口将关闭,所有信息都将丢失.
问题:当涉及是否关闭Internet Explorer弹出/选项卡的对话框时,是否可以或者是否有解决方法将焦点设置为"取消"而不是"确定" ?
先感谢您!=)
我有一个表,我正在使用createField()来创建字段.在编辑模式下,用户可以在字段中输入文本.
此表中的一列应该只允许整数,因此我使用的是IntegerRangeValidator.
验证应该是动态的(按类型),如果输入验证为false,则应显示一个小的红色感叹号,工具提示应该说"仅允许整数!".为了能够显示这些感叹号并进行动态验证,我需要使用一个每200ms监听textChanges的包装器.
问题是TextField返回一个String,因此验证器将所有内容解释为字符串,即使用户在字段中键入了一个整数.
在Vaadin 7中 - 当在包装器中的重写textChange-method中执行验证时,如何从表内的TextField验证整数?
createField方法:
@Override
public Field<?> createField(Container container, Object itemId, Object propertyId, com.vaadin.ui.Component uiContext) {
TextField tField = null;
tField = (TextField) super.createField(container, itemId, propertyId, uiContext);
tField.setBuffered(true);
addFieldListeners(tField);
if (propertyId.equals("age") {
tField.setRequired(true);
tField.setRequiredError("This field is required!");
// tField.setConverter(new StringToIntegerConverter()); <-- I also tried this, without success
tField.addValidator(new IntegerRangeValidator("Only Integers allowed!", 1, 150));
@SuppressWarnings({ "unchecked", "rawtypes" })
TableDataValidatingWrapper<TextField> wField = new TableDataValidatingWrapper(tField);
return wField;
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
包装:
public class TableDataValidatingWrapper<T> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Checkstyle(通过maven-checkstyle-plugin)来使用Checkstyle CustomImportOrder模块检查IntelliJ导入.尽管根据IntelliJ的默认规则订购了我的导入,但Checkstyle仍然说导入顺序错误.
这是我的导入(根据IntelliJ规则(ctrl + o)排序:
import org.codehaus.jackson.JsonNode;
import javax.sql.rowset.serial.SQLOutputImpl;
import java.util.ArrayList;
import java.util.List;
Run Code Online (Sandbox Code Playgroud)
以下是Checkstyle的警告信息:
[WARNING] src\main\java\com\example\hej\EnKlass.java[5] (imports) CustomImportOrder: Import statement is in the wrong order. Should be in the 'SPECIAL_IMPORTS' group.
[WARNING] src\main\java\com\example\hej\EnKlass.java[6] (imports) CustomImportOrder: Import statement is in the wrong order. Should be in the 'STANDARD_JAVA_PACKAGE' group.
[WARNING] src\main\java\com\example\hej\EnKlass.java[7] (imports) CustomImportOrder: Import statement is in the wrong order. Should be in the 'STANDARD_JAVA_PACKAGE' group.
Run Code Online (Sandbox Code Playgroud)
这是我的checkstyle.xml CustomImportOrder规则(由Checkstyle网站推荐用于IntelliJ):
<module name="CustomImportOrder">
<property name="customImportOrderRules" value="THIRD_PARTY_PACKAGE###SPECIAL_IMPORTS###STANDARD_JAVA_PACKAGE###STATIC"/>
<property name="specialImportsRegExp" value="^javax\."/>
<property name="standardPackageRegExp" value="^java\."/>
<property name="sortImportsInGroupAlphabetically" …Run Code Online (Sandbox Code Playgroud) 我有一个基于 Spring Boot 的项目,它使用 CXF 来构建 SOAP Web 服务。
发送 SOAP 1.1 消息(使用 SOAPUI)工作正常,但是当我尝试发送 SOAP 1.2 消息(当然使用相同的 WSDL)时,我收到了消息"A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint"。该消息是自我解释的,但我不明白为什么我的端点不接受 1.2 消息。
我的 WSDL 包含soap12 的正确绑定和命名空间。
在我的 spring @Configuration 类中,我将它添加到 CXF 端点 bean:
endpoint.setBindingConfig(new BindingConfiguration()
{
@Override
public String getBindingId()
{
return SOAPBinding.SOAP12HTTP_MTOM_BINDING;
}
});
Run Code Online (Sandbox Code Playgroud)
那没有帮助。当我变得更加绝望时,我尝试了@BindingType和@SOAPBinding注释当然不起作用,然后我尝试SaajSoapMessageFactory了SoapVersion.SOAP_12. 没用。我<extension>true</extension><protocol>Xsoap1.2</protocol>在我的jaxws-maven-plugin. 失败的。
端点显然没有配置为接收 SOAP 1.2 消息。我如何实现这一目标?
我有这个测试:
@Test
public void UpdateAllFooDatesToOneDayBeforeProvidedDate_TodaysDateAndFooDate_UpdatedDates() {
// arrange
List<Foo> foos = new ArrayList<Foo>();
Date barDate = today;
Foo foo1 = setupFoo();
Foo foo2 = setupFoo();
foos.add(foo1);
foos.add(foo2);
foo1.setValidTo(dateUtil.adjustDaysOfDate(today, 5));
foo2.setValidTo(dateUtil.adjustDaysOfDate(today, 8));
// act
modifyDates.updateAllFooDatesToOneDayBeforeProvidedDate(barDate, foos);
// assert
assertThat(foos, hasItems(...?)); //I don't know how to assert this
}
Run Code Online (Sandbox Code Playgroud)
updateAllFooDatesToOneDayBeforeProvidedDate(Date,List)只是将所有Foos的日期属性更改为barDate之前的日期.
我正在尝试使用Hamcrest来帮助我断言列表已经更新,但我无法让它真正起作用.
我应该简单地使用foos.get(n).getDate()并断言那些?
断言foos中元素的date属性是否已正确更新的首选方法是什么?
编辑:错字
我想在database模块中的内存中测试中重用模块的测试资源中的sql脚本pizza,但是我无法从类路径中获取脚本.
我的目录结构如下所示:
(为简洁起见,我留下了大部分文件/目录)
| pom.xml
|
|
+---database
| | pom.xml
| |
| \---src
| \---test
| \---resources
| \---db
| \---migration
| \---hsqldb
| V1__create_schema.sql
| V2__config_data.sql
| V3__user_data.sql
|
+---pizza
| | pom.xml
| |
| \---src
| +---main
| | +---java
| | | \---com
| | | \---example
| | | +---domain
| | | | DoStuff.java
| | |
| | \---resources
| | | applicationContext.xml
| |
| \---test …Run Code Online (Sandbox Code Playgroud) 我创建了一个使用Spring Security(3.2)登录提示的Web应用程序.我在Tomcat 7中运行应用程序.我使用Tomcat管理器来监视会话.它是一个使用Vaadin servlet的Vaadin应用程序.没有使用JSP页面.
现在...
这是预期的行为(防止某种会话固定攻击)还是我只是配置错误?
java ×4
maven ×4
vaadin ×3
checkstyle ×2
spring ×2
tomcat ×2
vaadin7 ×2
c++ ×1
cxf ×1
eclipse ×1
hamcrest ×1
html ×1
javascript ×1
jax-ws ×1
junit ×1
maven-3 ×1
maven-plugin ×1
session ×1
soap ×1
spring-boot ×1
testing ×1
tomcat7 ×1
unit-testing ×1
wsdl ×1