GVKun编程网logo

java – 如何为使用Spring Cache缓存的Spring Web Service设置正确的Last-Modified标头值?

1

针对java–如何为使用SpringCache缓存的SpringWebService设置正确的Last-Modified标头值?这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展.NETWeb部

针对java – 如何为使用Spring Cache缓存的Spring Web Service设置正确的Last-Modified标头值?这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展.NET Web 部件 | Web 部件管理器 | Web 部件区、Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10、asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API、asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证等相关知识,希望可以帮助到你。

本文目录一览:

java – 如何为使用Spring Cache缓存的Spring Web Service设置正确的Last-Modified标头值?

java – 如何为使用Spring Cache缓存的Spring Web Service设置正确的Last-Modified标头值?

我有这样的 Spring MVC控制器:

@Controller
@RequestMapping(value = "/user")
public class UserController {
   .....      
   @Cacheable(value = "users",key = "#id")
   @RequestMapping(value = "/get",method = RequestMethod.GET)
   @ResponseBody
   public User getUser(Long id){
       return userService.get(id);
   }
   ....
}

我想将标题Last-Modified添加到GetUser Web服务的HTTP响应中.
如何在我的商店中添加缓存时获得正确的日期?
如何将此日期的Last-Modified标题添加到Spring Controller方法的响应中?

解决方法

这个怎么样:

@Controller
@RequestMapping(value = "/user")
class UserController {

    @Cacheable(value = "users",key = "#id")
    @RequestMapping(value = "/get",method = RequestMethod.GET)
    @ResponseBody
    public ResponseEntity<User> getUser(Long id) {
        HttpHeaders headers = new HttpHeaders();
        headers.set("Last-Modified",dateFormat.format(new Date()));
        return new ResponseEntity<SecurityProperties.User>(headers,userService.get(id),HttpStatus.OK);
    }
}

.NET Web 部件 | Web 部件管理器 | Web 部件区

.NET Web 部件 | Web 部件管理器 | Web 部件区

如何解决.NET Web 部件 | Web 部件管理器 | Web 部件区

我在 ASP.NET Web 窗体中使用 Web 部件。我的项目运行正常。 但是,当我拖放 Web 部件管理器时出现此错误,谁能指导我如何在 Windows 10 中解决此问题。

与 sql Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 sql Server 是否配置为允许远程连接。 (提供程序:sql 网络接口,错误:26 - 错误定位服务器/指定的实例)

Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10

Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10

如何解决Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10

我目前正在使用 Airflow 2.0 使用 BashOperator 来安排我的 Pentaho 作业,如下例所示:

sudo /d/Airflow/pdi-ce-9.1.0.0-324/data-integration/pan.sh -rep:"penta_repo" -user:123 -pass:123 -dir:TEST/RUN_IT -trans:"RUN_IT_1" -level:Basic

当我运行它时,有很多与java库相关的错误。这是日志的一部分:

[...]
[2021-03-04 11:40:49,072] {bash.py:173} INFO - SEVERE: Bundle org.ops4j.pax.web.pax-web-runtime [190] Error starting mvn:org.ops4j.pax.web/pax-web-runtime/7.2.10 (org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].)
[2021-03-04 11:40:49,072] {bash.py:173} INFO - org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2290)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.startBundle(Felix.java:2146)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.Thread.run(Thread.java:748)
[2021-03-04 11:40:49,072] {bash.py:173} INFO - Caused by: java.lang.NoClassDefFoundError: org/osgi/service/cm/ConfigurationException
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.getDeclaredConstructors0(Native Method)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.privateGetDeclaredConstructors(Class.java:2671)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.getConstructor0(Class.java:3075)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.class.newInstance(Class.java:412)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.createBundleActivator(Felix.java:4512)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2221)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  ... 4 more
[2021-03-04 11:40:49,072] {bash.py:173} INFO - Caused by: java.lang.classNotFoundException: org.osgi.service.cm.ConfigurationException not found by org.ops4j.pax.web.pax-web-runtime [190]
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  at java.lang.classLoader.loadClass(ClassLoader.java:351)
[2021-03-04 11:40:49,072] {bash.py:173} INFO -  ... 10 more
[...]
[2021-03-04 11:43:56,982] {taskinstance.py:1396} ERROR - [Errno 1] Operation not permitted
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1086,in _run_raw_task
    self._prepare_and_execute_task_with_callbacks(context,task)
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1260,in _prepare_and_execute_task_with_callbacks
    result = self._execute_task(context,task_copy)
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1300,in _execute_task
    result = task_copy.execute(context=context)
  File "/usr/local/lib/python3.8/dist-packages/airflow/operators/bash.py",line 171,in execute
    for raw_line in iter(self.sub_process.stdout.readline,b''''):
  File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py",line 1215,in signal_handler
    task_copy.on_kill()
  File "/usr/local/lib/python3.8/dist-packages/airflow/operators/bash.py",line 187,in on_kill
    os.killpg(os.getpgid(self.sub_process.pid),signal.SIGTERM)
PermissionError: [Errno 1] Operation not permitted

在这种情况下,有很多java错误并且我的任务没有运行。但是在很多情况下,尽管出现了错误,我的任务仍能成功运行。在这些情况下,bash 命令和 pentaho 执行之间有大约 5 分钟的延迟。下面是另一个成功执行的日志,bash 命令是 09:38AM 但 pentaho 仅在 09:42 AM 执行:

[2021-03-04 09:38:24,482] {bash.py:158} INFO - Running command: sudo /d/Airflow/pdi-ce-9.1.0.0-324/data-integration/pan.sh -rep:"penta_repo" -user:123 -pass:123 -dir:TEST/ALIMENTADOR -trans:"ALIMENTADOR_1" -level:Basic
[2021-03-04 09:38:24,525] {bash.py:169} INFO - Output:
[2021-03-04 09:38:28,739] {bash.py:173} INFO - 12:38:28,739 INFO  [KarafBoot] Checking to see if org.pentaho.clean.karaf.cache is enabled
[2021-03-04 09:38:32,001] {bash.py:173} INFO - 12:38:32,001 INFO  [KarafInstance]
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *******************************************************************************
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *** Karaf Instance Number: 68 at /d/Airflow/pdi-ce-9.1.0.0-324/data-integra ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - ***   tion/./system/karaf/caches/pan/data-1                                 ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *** Karaf Port:8869                                                         ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *** Osgi Service Port:9118                                                  ***
[2021-03-04 09:38:32,001] {bash.py:173} INFO - *******************************************************************************
[...]
[2021-03-04 09:38:36,773] {bash.py:173} INFO - 2021-03-04 12:38:36.770:INFO::FelixStartLevel: Logging initialized @11384ms to org.eclipse.jetty.util.log.StdErrLog
[2021-03-04 09:38:36,781] {bash.py:173} INFO - Mar 04,2021 12:38:36 PM org.apache.karaf.main.Main$1 log
[2021-03-04 09:38:36,782] {bash.py:173} INFO - SEVERE: Bundle org.ops4j.pax.web.pax-web-runtime [190] Error starting mvn:org.ops4j.pax.web/pax-web-runtime/7.2.10 (org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].)
[2021-03-04 09:38:36,782] {bash.py:173} INFO - org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.web.pax-web-runtime [190].
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2290)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.startBundle(Felix.java:2146)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.Thread.run(Thread.java:748)
[2021-03-04 09:38:36,782] {bash.py:173} INFO - Caused by: java.lang.NoClassDefFoundError: org/osgi/service/cm/ConfigurationException
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.getDeclaredConstructors0(Native Method)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.privateGetDeclaredConstructors(Class.java:2671)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.getConstructor0(Class.java:3075)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at java.lang.class.newInstance(Class.java:412)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.createBundleActivator(Felix.java:4512)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.Felix.activateBundle(Felix.java:2221)
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  ... 4 more
[2021-03-04 09:38:36,782] {bash.py:173} INFO - Caused by: java.lang.classNotFoundException: org.osgi.service.cm.ConfigurationException not found by org.ops4j.pax.web.pax-web-runtime [190]
[2021-03-04 09:38:36,782] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  at org.apache.Felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  at java.lang.classLoader.loadClass(ClassLoader.java:351)
[2021-03-04 09:38:36,783] {bash.py:173} INFO -  ... 10 more
[...]
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at org.pentaho.di.osgi.KarafLifecycleListener.waitForFeatures(KarafLifecycleListener.java:204)
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at org.pentaho.di.osgi.KarafLifecycleListener.waitForBundlesstarted(KarafLifecycleListener.java:177)
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at org.pentaho.di.osgi.KarafLifecycleListener.lambda$maybeStartWatchers$0(KarafLifecycleListener.java:160)
[2021-03-04 09:42:37,209] {bash.py:173} INFO -  at java.lang.Thread.run(Thread.java:748)
[2021-03-04 09:42:37,209] {bash.py:173} INFO - 12:42:37,208 INFO  [DriverManager] Finished installing drivers kars.
[2021-03-04 09:42:37,223] {bash.py:173} INFO - 2021/03/04 12:42:37 - Logging is at level : Basic
[2021-03-04 09:42:37,229] {bash.py:173} INFO - 2021/03/04 12:42:37 - Start of run.
[2021-03-04 09:42:37,243] {bash.py:173} INFO - 2021/03/04 12:42:37 - RepositoriesMeta - Reading repositories XML file: /d/Airflow/pdi-ce-9.1.0.0-324/data-integration/repositories.xml
[2021-03-04 09:42:39,936] {bash.py:173} INFO - 2021/03/04 12:42:39 - ALIMENTADOR_1 - dispatching started for transformation [ALIMENTADOR_1]
[2021-03-04 09:42:40,354] {bash.py:173} INFO - 2021/03/04 12:42:40 - BDN_STAGE_ST5P_ALIMENTADOR.0 - Connected to database [BDN_DCC] (commit=10000)
[2021-03-04 09:42:40,733] {bash.py:173} INFO - 2021/03/04 12:42:40 - OPER_ALIMENTADOR.0 - Finished reading query,closing connection.
[2021-03-04 09:42:40,740] {bash.py:173} INFO - 2021/03/04 12:42:40 - OPER_ALIMENTADOR.0 - Finished processing (I=1630,O=0,R=0,W=1630,U=0,E=0)
[2021-03-04 09:42:40,804] {bash.py:173} INFO - 2021/03/04 12:42:40 - BDN_STAGE_ST5P_ALIMENTADOR.0 - Finished processing (I=0,O=1630,R=1630,812] {bash.py:173} INFO - 2021/03/04 12:42:40 - Finished!
[2021-03-04 09:42:40,812] {bash.py:173} INFO - 2021/03/04 12:42:40 - Start=2021/03/04 12:42:39.933,Stop=2021/03/04 12:42:40.812
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - Processing ended after 0 seconds.
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - ALIMENTADOR_1 -
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - ALIMENTADOR_1 - Step OPER_ALIMENTADOR.0 ended successfully,processed 1630 lines. ( - lines/s)
[2021-03-04 09:42:40,813] {bash.py:173} INFO - 2021/03/04 12:42:40 - ALIMENTADOR_1 - Step BDN_STAGE_ST5P_ALIMENTADOR.0 ended successfully,processed 1630 lines. ( - lines/s)
[2021-03-04 09:42:41,403] {bash.py:177} INFO - Command exited with return code 0
[2021-03-04 09:42:41,768] {taskinstance.py:1135} INFO - Marking task as SUCCESS. dag_id=ALIMENTADOR_JOB,task_id=Alimentador,execution_date=20210304T110100,start_date=20210304T123823,end_date=20210304T124241
[2021-03-04 09:42:41,865] {taskinstance.py:1195} INFO - 1 downstream tasks scheduled from follow-on schedule check
[2021-03-04 09:42:41,881] {local_task_job.py:118} INFO - Task exited with return code 0

我的问题是:

  1. 如何修复这些 Java 错误?
  2. 这些 java 错误是否与我成功运行时的延迟有关?

非常感谢!

asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API

asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API

我刚刚安装了Visual Studio 2012,并开始检查MVC 4和Web Api。
我已经用Web API创建了一个新的MVC 4应用程序。基于一些示例和教程,我开始配置我的路由:
routes.MapHttpRoute(
                name: "Controller only",routeTemplate: "api/{controller}"
            );

但是,这会导致RouteCollection不包含MapHttpRoute的定义的错误。我是否安装了一些DLL?
据我看到,我已经安装了所有正确的DLL和版本。

解决方法

我已经通过在RouteConfig.cs中添加对System.Web.Http的引用来解决它

asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证

asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证

我使用 Windows.Web.Http.HttpClient连接到我的WEB API.应用程序没有提示用户名和密码,但最近我通过将AuthorizeAttribute过滤器从Action级别移动到类级别来更改WEB API.现在我的Windows应用商店8.1应用程序提示用户ID和密码.请让我知道如何设置HttpClient不提示登录和密码. any1可以建议我,我需要添加标头到我的httpcleint

使用(Windows.Web.Http.HttpClient httpClient = new Windows.Web.Http.HttpClient())
                {
                    //添加用户代理标头
                    var headers = httpClient.DefaultRequestHeaders;

//检查用户标头值的安全方法是TryParseAdd方法
 //因为我们知道这个标题是可以的,所以我们使用ParseAdd会抛出异常
  //值不好 – http://msdn.microsoft.com/en-us/library/windows/apps/dn440594.aspx

headers.UserAgent.ParseAdd("ie");
                headers.UserAgent.ParseAdd("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");


                using (var response = await httpClient.GetAsync(new Uri(url)))

我没有看到发送默认凭据的方法.

解决方法

使用HttpBaseProtocolFilter.AllowUI禁用UI对话框.试试这个:

Windows.Web.Http.Filters.HttpBaseProtocolFilter filter =
    new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.AllowUI = false;
HttpClient client = new HttpClient(filter);

Uri uri = new Uri("http://localhost/?basic=1");
var response = await client.GetAsync(uri);
System.Diagnostics.Debug.WriteLine(response);

你需要凭证吗?使用HttpBaseProtocolFilter.ServerCredential.试试这个:

Uri uri = new Uri("http://localhost?ntlm=1");

Windows.Web.Http.Filters.HttpBaseProtocolFilter filter =
    new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.AllowUI = false;

// Set credentials that will be sent to the server.
filter.ServerCredential =
    new Windows.Security.Credentials.PasswordCredential(
        uri.ToString(),"userName","abracadabra");

HttpClient client = new HttpClient(filter);
var response = await client.GetAsync(uri);
System.Diagnostics.Debug.WriteLine(response);

您需要默认的Windows凭据(域凭据)吗?只需将Enterprise Authentication功能添加到Package.appxmanifest即可.

我们今天的关于java – 如何为使用Spring Cache缓存的Spring Web Service设置正确的Last-Modified标头值?的分享已经告一段落,感谢您的关注,如果您想了解更多关于.NET Web 部件 | Web 部件管理器 | Web 部件区、Airflow/Pentaho Java 错误 - 启动 mvn 时出错:org.ops4j.pax.web/pax-web-runtime/7.2.10、asp.net-web-api – System.Web.Routing.RouteCollection不包含“MapHttpRoute”的定义 – VS 2012,Web API、asp.net-web-api – Windows.Web.Http.HttpClient WEB API Windows身份验证的相关信息,请在本站查询。

本文标签: