我正在尝试使用Tiles和REST插件运行我的Struts2项目,但我无法让它工作.
我已经查看了两者的文档,我认为我做得对.这是我的文件:
web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- listeners -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
<!-- context params -->
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles-tradesman.xml</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-tradesman.xml</param-value>
</context-param>
<!-- filters -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- filter mappings -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
在struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<!-- RESTful plugin setup -->
<constant name="struts.mapper.class" value="rest" />
<constant name="struts.convention.action.suffix" …Run Code Online (Sandbox Code Playgroud) 我对此有点困惑.Titanium正在吹嘘能够使用CSS进行样式,使用javascript编程并使用HTML5创建,同时使最终产品成为平台的原生.这怎么可能?如果我用JS/HTML/CSS编写,那么它们不会在浏览器中运行吗?让他们非原生?
首先,我需要说我在Google App Engine中没那么有经验.
我知道我们可以在GAE上部署RESTful Web服务(JERSEY)
而且我也知道RESTLET有一个专门针对GAE的版本.
我想从那些使用两种方法的人那里获得建议.
例如,为JERSEY配置GAE应用程序太困难或困难??? 或者例如使用RESTLET有什么缺点?还是太厚了(RESTLET)?
谢谢
我有一些代码,我想要进行一次初始化.但是这段代码没有明确的生命周期,所以在我的初始化完成之前,我的逻辑可能被多个线程调用.所以,我基本上要确保我的逻辑代码"等待"直到初始化完成.
这是我的第一次削减.
public class MyClass {
private static final AtomicBoolean initialised = new AtomicBoolean(false);
public void initialise() {
synchronized(initialised) {
initStuff();
initialised.getAndSet(true);
initialised.notifyAll();
}
}
public void doStuff() {
synchronized(initialised) {
if (!initialised.get()) {
try {
initialised.wait();
} catch (InterruptedException ex) {
throw new RuntimeException("Uh oh!", ex);
}
}
}
doOtherStuff();
}
}
Run Code Online (Sandbox Code Playgroud)
我基本上想确保这会做我认为它会做的事情 - 阻止doStuff直到initialised为真,并且我没有错过竞争条件,其中doStuff可能会卡在Object.wait()上那将永远不会到来.
编辑:
我无法控制线程.我希望能够控制何时完成所有初始化,这就是doStuff()无法调用initialise()的原因.
我使用了AtomicBoolean,因为它是值持有者和我可以同步的对象的组合.我本可以简单地使用"public static final Object lock = new Object();" 和一个简单的布尔标志.AtomicBoolean方便地给了我两个.无法修改布尔值.
CountDownLatch正是我想要的.我还考虑过使用含有0许可证的Sempahore.但CountDownLatch非常适合这项任务.
我希望具有相同的请求映射,但根据文件扩展名解析为不同的视图.我有两个JSP,一个呈现HTML,另一个呈现XML.根据文件扩展名,我应该解析为相应的jsp.
这是我的控制器:
@Controller
public class FileManagementController {
@RequestMapping(value="/filemanagements", method=RequestMethod.GET)
public ModelAndView list() {
//if file extension .xml return /filemanagement/listXml
//if no file extension present return /filemanagement/list
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下y我的WebApp:
/jsp/filemanagement/list.jsp
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
Run Code Online (Sandbox Code Playgroud)
..
/jsp/filemanagement/listXml.jsp
<?xml version="1.0" encoding="UTF-8"?>
<%@page contentType="text/xml" pageEncoding="UTF-8"%>
Run Code Online (Sandbox Code Playgroud)
....
这就是我在servletContext.xml中配置ViewResolver的方法:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
Run Code Online (Sandbox Code Playgroud) 我试图从浏览器测试我的Rest Wcf服务.当我试图从浏览器发送一些值时,我收到以下错误."由于EndpointDispatcher上的AddressFilter不匹配,无法在接收方处理消息.
检查发送方和接收方的EndpointAddresses是否一致."
然后我添加了[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)].然后我得到一个不同的错误.
"由于EndpointDispatcher上的ContractFilter不匹配.这可能是由于合同不匹配(发送方和接收方之间的操作不匹配)或发送方与接收方之间的绑定/安全性不匹配.
检查发送方和接收方是否具有相同的合同,相同的绑定(包括安全要求,例如消息,传输,无)."
我们可以从浏览器传递值到Rest Wcf服务吗?
我试图从浏览器传递以下值.
http://mywebsite/Service1.svc/mymethod/Firstname,Lastname,LosAngles,CA
Run Code Online (Sandbox Code Playgroud)
这是我的web.confg文件
<system.serviceModel>
<services>
<service behaviorConfiguration="Wcfservice1.ServiceBehavior" name="="Wcfservice1.Service1">
<endpoint address="" binding="webHttpBinding" contract="Wcfservice1.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Wcfservice1.ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud) 我看到一个奇怪的问题.我有两个webapps.一个用于我们使用Jersey公开的其余web服务.另一个有JSF前端实现,它调用webservice以上来获取细节.我们使用Tomcat作为容器.
我面临的问题是当我调用一个rest webservice时,我会像这样抛出WebApplicationException
catch (CustomExceptions e) {
ResponseBuilder response = new ResponseBuilderImpl();
response.status(500);
response.entity(e.getStackTrace());
throw new WebApplicationException(e, response.build());
}
Run Code Online (Sandbox Code Playgroud)
另一方面,在FE webapps上,我执行以下操作:
try {
r.get(MyClass.class);
return "SUCCESS";
} catch (WebApplicationException wae) {
return "FAILURE";
} catch (UniformInterfaceException wae) {
return "FAILURE";
}
Run Code Online (Sandbox Code Playgroud)
在catch块中,我期待WebApplicationException但它抛出UniformInterfaceException这很奇怪.此外,如果它抛出UniformInterfaceException,它不会维护堆栈跟踪.即使是我从休息电话中传来的回应也会丢失.有人可以帮助我如何从其余的电话中获得原始的堆栈跟踪?
提前致谢.
我的RESTful webservice(Rails)上有方法"getBuses".该方法需要返回JSON中的总线列表.但是,当我发送"/getBuses.json"请求时,我需要发送
params = [NSDictionary
dictionaryWithObjectsAndKeys: @"2011-08-16", @"datum", @"TRUE",
@"fromSerbia", nil];
Run Code Online (Sandbox Code Playgroud)
我发布了params,因为我需要过滤响应(仅适用于特定日期的特定游览).然后,我期待这样的回应:
{
"buses" : [ {
"bus_number" : "1",
"created_at" : "2011-08-15T23:07:52Z",
"id" : 1,
"lat" : 44.815,
"long" : 20.4665,
"model" : "Setra",
"registar_number" : "123456",
"seats" : 50,
"tour_id" : 1,
"updated_at" : "2011-08-15T23:07:52Z"
}, {
"bus_number" : "2",
"created_at" : "2011-08-15T23:07:52Z",
"id" : 2,
"lat" : 44.812,
"long" : 20.465,
"model" : "Mercedes",
"registar_number" : "2234",
"seats" : 60,
"tour_id" : 1,
"updated_at" : "2011-08-15T23:07:52Z"
} …Run Code Online (Sandbox Code Playgroud) 现在我研究一下Scheme的OOP部分.我可以在Scheme中定义类,如下所示:
(define (create-queue)
(let ((mpty #t)
(the-list '()))
(define (enque value)
(set! the-list (append the-list (list value)))
(set! mpty #f)
the-list)
(define (deque)
(set! the-list (cdr the-list))
(if (= (length the-list) 0)
(set! mpty #t))
the-list)
(define (isEmpty)
mpty)
(define (ptl)
the-list)
(define (dispatch method)
(cond ((eq? method 'enque) enque)
((eq? method 'deque) deque)
((eq? method 'isEmpty) isEmpty)
((eq? method 'print) ptl)))
dispatch))
Run Code Online (Sandbox Code Playgroud)
我可以在Scheme中实现类继承吗?
我一直在努力在.NET 4.0中设置WCF REST服务.我有GET请求工作,但任何涉及POST数据到服务器的请求都失败了HTTP 400 Bad Request.
这是我的简单服务:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Service1
{
[WebGet(UriTemplate = "")]
public string HelloWorld()
{
return "hello world";
}
[WebInvoke(UriTemplate = "", Method = "POST")]
public string HelloWorldPost(string name)
{
return "hello " + name;
}
}
Run Code Online (Sandbox Code Playgroud)
我的Web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<protocolMapping>
<add scheme="http" binding="webHttpBinding" /> …Run Code Online (Sandbox Code Playgroud) java ×3
ios ×2
jersey ×2
web-services ×2
asp.net ×1
c# ×1
concurrency ×1
http ×1
http-post ×1
http-put ×1
inheritance ×1
iphone ×1
jsf ×1
json ×1
lisp ×1
objective-c ×1
restkit ×1
restlet ×1
scheme ×1
spring ×1
spring-mvc ×1
struts2 ×1
tiles ×1
titanium ×1
wcf ×1