想象一个更复杂的CRUD应用程序,它具有三层架构并通过Web服务进行通信.客户端开始与服务器的对话,并做一些像向导一样的向导.要处理向导,客户端需要服务器提供的反馈.
我们开始讨论这种方法的有状态或无状态Web服务.我结合自己的经验做了一些研究,这让我想到了后面提到的问题.
具有以下属性的无状态Web服务(在我们的示例中):
+ high scalability
+ high availability
+ high speed
+ rapid testing
- bloated contract
- implementing more logic on server-side
Run Code Online (Sandbox Code Playgroud)
但是我们可以划掉前两点,我们的应用程序不需要高可伸缩性和可用性.
所以我们来到有状态的网络服务.我已经阅读了大量的博客和论坛帖子,实现有状态网络服务的最发明点是:
+ simplifies contract (protocol)
- bad testing
- runs counter to the basic architecture of http
Run Code Online (Sandbox Code Playgroud)
但几乎所有的Web应用程序都没有这些坏点吗?Web应用程序使用cookie,查询字符串,会话ID和所有内容来避免http的无状态.
那么为什么网络服务不好呢?
我需要一个通用的Criterion强制结果零匹配.
有点像Restrictions.eq(true, false)?
我正在尝试构建一个这样的原型结构,一个带有一些Web框架自定义文件夹的webapp.特别是一些动态文件夹,它们也包含原型带来的一些文件.
????src
????main
????webapp
????WEB-INF
????cfg
? ????log4j
? ????resources
? ????extensions
? ????${shortName}-business
? ????${shortName}-layout
????lib
Run Code Online (Sandbox Code Playgroud)
我为我添加了一个必需的属性,archetype-metadata.xml以便为项目创建一个简短名称,用于生成唯一文件夹.
<requiredProperties>
<requiredProperty key="shortName" />
</requiredProperties>
Run Code Online (Sandbox Code Playgroud)
shortName我使用的属性fileSet:
<fileSet>
<directory>[..]/resources/extensions/${shortName}-business</directory>
</fileSet>
<fileSet>
<directory>[..]/resources/extensions/${shortName}-layout</directory>
</fileSet>
Run Code Online (Sandbox Code Playgroud)
生成原型的命令:
mvn archetype:generate -B \
-DgroupId=com.stackoverflow \
-DartifactId=stackoverflow-question -DarchetypeGroupId=com.stackoverflow \
-DarchetypeArtifactId=stackoverflow-archetype -DarchetypeVersion=1.0 \
-DshortName=soq
Run Code Online (Sandbox Code Playgroud)
我假设获得以下文件夹结构:
..\
????soq-business
????soq-layout
Run Code Online (Sandbox Code Playgroud)
但我得到这个名字${shortName}-business作为文件夹,而不是被属性替换.
..\
????${shortName}-business
????${shortName}-layout
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?如何在soq-business不知道文件夹名称的情况下将文件放在下面?
我有一个更大的导出/导入例程,我决定将这些包分成两个更小的包.
我试着用org.yourcompany.business.export...工作正常!遗憾的org.yourcompany.business.import是,由于importJava中的reserved关键字,因此无法使用具有该名称的相反包.
您如何命名导入/导出包?
谢谢!
嘿,我尝试修剪groovy列表中的每个字符串项
list.each() { it = it.trim(); }
Run Code Online (Sandbox Code Playgroud)
但这仅适用于闭包,在列表中字符串仍然是"foo","bar"和"groovy".
我怎样才能实现这一目标?
我们使用PayloadRootQNameEndpointMapping(基于脚本语言如Groovy或别的东西),以给定的根映射端点脚本QName.我们最近尝试将spring ws迁移到2.0版.PayloadRootQNameEndpointMapping的javadoc 显示该类被标记为已弃用.
PayloadRootQNameEndpointMapping从Spring Web Services 2.0开始,不赞成使用PayloadRootAnnotationMethodEndpointMapping
由于注释是静态的,因此我们无法为脚本编写端点提供动态概念.到目前为止,我们可以将处理脚本端点(提供脚本文件和一些上下文)的Bean一般映射到根QName.
简:我们如何在不使用已弃用的API的情况下实现好的旧bean端点到Root QName映射?有任何想法吗?
先感谢您.
我使用eclipse:eclipse目标来生成Eclipse Project环境.部署工作正常.该目标为所有需要的依赖项创建var类路径条目.
有了m2eclipseMaven容器,它定义了一个WEB-INF/lib适合我的导出文件夹.但我不想依赖,m2eclipse所以我不再使用它了.
eclipse:eclipse目标生成的类路径条目没有这样的导出文件夹.
在使用WTP引导servlet容器时,它会将除库之外的所有资源和类发布到上下文中.
什么是缺少发布所需的库,或者如果没有m2eclipse集成则不可能?
环境
maven-eclipse-plugin配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
<projectNameTemplate>someproject-[artifactId]</projectNameTemplate>
<useProjectReferences>false</useProjectReferences>
<downloadSources>false</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
<wtpmanifest>true</wtpmanifest>
<wtpversion>2.0</wtpversion>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpContextName>someproject-[artifactId]</wtpContextName>
<additionalProjectFacets>
<jst.web>2.3</jst.web>
</additionalProjectFacets>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
生成的文件
执行eclipse:eclipse目标后,依赖模块未在我生成的列表中列出.settings/org.eclipse.wst.common.component,因此在服务器启动时我会错过这些依赖项.
这就是我得到的:
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="someproject-core">
<wb-resource deploy-path="/" source-path="src/main/java"/>
<wb-resource deploy-path="/" source-path="src/main/webapp"/>
<wb-resource deploy-path="/" source-path="src/main/resources"/>
</wb-module>
</project-modules>
Run Code Online (Sandbox Code Playgroud)
即将推出的读者更新
这里的问题是偏离packaging型,如果你使用maven-eclipse-plugin …
是否有一个框架能够删除图像的白色空间(矩形).我们从技术图纸创建图像缩略图,遗憾的是PDF格式.我们将PDF转换为SVG,然后转换为JPG.通常技术图纸非常小,现在放在缩略图的左上角:
+---------+----------------------+
| | |
| (image) | |
| | |
+---------+ |
| |
| |
| |
| |
| (empty space) |
| |
| |
+--------------------------------+
Run Code Online (Sandbox Code Playgroud)
那么如何轻松删除空白区域并缩小JPG文件呢?
我没有找到一种在TypeScript中轻松导出类实例的方法.我必须提出以下解决方法来生成正确的javascript代码.
var expo = new Logger("default");
export = expo;
Run Code Online (Sandbox Code Playgroud)
生成
var expo = new Logger("default");
module.exports = expo;
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来实现这一目标?
如何将a javax.xml.transform.Source转换为InputStream?实施Source是javax.xml.transform.dom.DOMSource.
Source inputSource = messageContext.getRequest().getPayloadSource();
Run Code Online (Sandbox Code Playgroud) java ×5
maven-2 ×2
criteria ×1
criteria-api ×1
crop ×1
eclipse ×1
eclipse-wtp ×1
groovy ×1
hibernate ×1
image ×1
immutability ×1
io ×1
javascript ×1
naming ×1
spring ×1
spring-ws ×1
stateful ×1
stateless ×1
string ×1
transform ×1
trim ×1
typescript ×1
web-services ×1