基于模型 - 视图 - 控制器(MVC)模式构建Java Web应用程序的框架。它从底层视图技术中提升灵活和分离的代码。
如何防止Spring分段文件上传存储在内存中并直接流式传输到磁盘?
我正在开发一个 Spring Web 应用程序,我需要使用多部分请求处理大文件上传。目前,整个文件存储在内存中,我想配置应用程序...
我有一个场景,一个url“serachUser”可能带有两个不同的值(请求参数)userId或UserName。 所以为此我创建了两种方法 公共字符串 searchUserById(@
假设我有一个接受请求的端点,如下所示: 获取 https://my.website.com/products?expired 或者 获取 https://my.website.com/products 我希望有效的方法: @GetMapping 公开
如何使用 Spring MVC 和 Spring Security 为资源处理程序启用 HTTP 缓存
我希望为某些静态资源(例如图像)启用HTTP缓存,这些资源的访问受到Spring Security的限制。 (这些资源不是安全关键,但不应该公开访问......
为什么默认用户仍然创建甚至添加了EnableWebSecurity注释和InMemoryUserDetailsManager
我正在尝试创建一个使用自定义用户和管理员凭据进行身份验证的应用程序。但是,自定义用户凭据会出现未经授权的异常。只有我可以使用系统登录...
如何在 Spring 中监控特定于服务器发送事件 (SSE) 的指标?
我们正在使用 SpringBoot 服务,该服务使用 SseEmitter 来实现服务器将事件发送回客户端。 从可观察性的角度来看,我想知道是否有任何指标是特别的......
使用 Spring MVC 和 JPA Eclipselinlk 时,没有可用于当前线程的具有实际事务的 EntityManager
我正在配置我的项目,我已经尝试了这里和那里提到的解决方案,但我仍然遇到相同的错误。仅使用 @PersistenceContext(type=PersistenceContextType.EXTENDED) 我不...
我正在使用Spring+Hibernate+Spring-MVC。 我想定义一个结合其他两个预定义验证注释的自定义约束:@NotNull @Size,如下所示: 导入 javax.validation.constraints.N...
我正在使用mybatis 3.1和spring 4.3来连接Maria db。在我的应用程序中,我仅使用 2 个准备好的语句(可调用语句类型)。但是应用程序运行几个小时后它就开始了......
当我扩展RepresentationModelAssemblerSupport时,我无法访问Lombok的AllArgsContructor
我已经尝试解决这个问题有一段时间了,但在我的 Spring Boot 项目中,在我扩展“RepresentationModelAssemblerSupport”的汇编器类之一中,我找不到任何可以帮助我的东西...
无法创建 AuthenticationManager bean
我们正在尝试使用令牌身份验证来使用@PreAuthorize。 当我们尝试使用@PreAuthorize时,SpringSecurity会在调用API之前弹出登录页面。我们不需要该页面,因为我们...
我有一个 Spring Boot 应用程序,并且正在使用 Spring Security (4.0.4)。 端点的当前安全配置(Java 中)允许调用 /some/endpoint,但不允许调用 /some/endpoint/。 我有
我正在运行一个 SpringBoot 应用程序,并且我有一个定义 Rest Api 并接受 id 列表请求的控制器。通常情况下它工作正常,但如果 ids 的数量变大,那么我会收到......
在 spring 6 mvc 应用程序中添加自定义登录页面配置后,错误没有名为“mvcHandlerMappingIntrospector”的 bean 可用
我使用的是 tomcat 10.1.24 和 jdk 21,其依赖项详细信息如下。 6.0.10 6.0.4...
如何在@SpringBootTest中使用重定向来测试POST请求表单提交
我正在彻底学习Spring Boot,我已经接近尾声了,这似乎是最后的症结所在。 我觉得我没有得到的是那些如此简单直接的事情之一......
RMIServiceExporter 不工作,无法连接到端口 1099 的 RMI 本地主机
我已使用以下配置将 Spring 托管服务 bean 导出到 RMI 服务中: 我已使用以下配置将 Spring 托管服务 bean 导出到 RMI 服务中: <bean class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="serviceName" value="spitterService"/> <property name="service" ref="spitterService"/> <property name="serviceInterface" value="com.spitter.service.SpitterService"/> <property name="registryHost" value="127.0.0.1"/> <property name="registryPort" value="1099"/> </bean> 但是当我加载我的 spring 配置文件(在 Tomcat 中部署我的应用程序)时,它会抛出以下异常 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.remoting.rmi.RmiServiceExporter#0' defined in ServletContext resource [/WEB-INF/spitter-servlet.xml]: Invocation of init method failed; nested exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connection refused: connect at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:872) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connection refused: connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184) at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322) at sun.rmi.registry.RegistryImpl_Stub.list(Unknown Source) at org.springframework.remoting.rmi.RmiServiceExporter.testRegistry(RmiServiceExporter.java:415) at org.springframework.remoting.rmi.RmiServiceExporter.getRegistry(RmiServiceExporter.java:326) at org.springframework.remoting.rmi.RmiServiceExporter.prepare(RmiServiceExporter.java:264) at org.springframework.remoting.rmi.RmiServiceExporter.afterPropertiesSet(RmiServiceExporter.java:227) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409) ... 20 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.<init>(Socket.java:375) at java.net.Socket.<init>(Socket.java:189) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595) ... 30 more 请帮助我..提前致谢 我还创建了一个 rmi 客户端来使用 RMI 服务 public class SpitterMain { public static void main(String[] args){ String serviceURL = "rmi://localhost:1099/spitterService"; try { SpitterService spitterService = (SpitterService) Naming.lookup(serviceURL); Spitter spitter = spitterService.getSpitter("panneerselvam"); List<Spittle> spittles = spitterService.getSpittlesForSpitter(spitter.getId(), 25); System.out.println("Welcome>"+spitter.getName()+"( "+spitter.getUsername()+" )"); System.out.println("Your Recent Spittles are:"); for(Spittle spittle: spittles){ System.out.println(spittle.getText()+" ON "+spittle.getWhen()); } } catch (NotBoundException ex) { Logger.getLogger(SpitterMain.class.getName()).log(Level.SEVERE, null, ex); } catch (MalformedURLException ex) { Logger.getLogger(SpitterMain.class.getName()).log(Level.SEVERE, null, ex); } catch (RemoteException ex) { Logger.getLogger(SpitterMain.class.getName()).log(Level.SEVERE, null, ex); } } } 现在我遇到以下异常.. java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.lang.ClassNotFoundException: org.springframework.remoting.rmi.RmiInvocationHandler (no security manager: RMI class loader disabled) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) at java.rmi.Naming.lookup(Naming.java:84) at com.spitter.client.SpitterMain.main(SpitterMain.java:28) Caused by: java.lang.ClassNotFoundException: org.springframework.remoting.rmi.RmiInvocationHandler (no security manager: RMI class loader disabled) at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:535) at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628) at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294) at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238) at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1530) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1492) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) ... 3 more 请检查一下这些...再次感谢 我认为如果您删除 registryHost 属性,它将在 1099 上动态创建一个主机,因为还没有一个主机。 <bean class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="serviceName" value="spitterService"/> <property name="service" ref="spitterService"/> <property name="serviceInterface" value="com.spitter.service.SpitterService"/> <property name="registryPort" value="1099"/> </bean> 要么在 1099 上启动 RmiRegistry。 您必须创建 myRmiExporter 并扩展 RMIServiceExporter 然后用这个body来实现这个方法 protected Registry getRegistry(String registryHost, int registryPort, RMIClientSocketFactory clientSocketFactory, RMIServerSocketFactory serverSocketFactory) throws RemoteException { if (registryHost != null) { // Host explictly specified: only lookup possible. if (logger.isInfoEnabled()) { logger.info("Looking for RMI registry at port '" + registryPort + "' of host [" + registryHost + "]"); } try { Registry reg = LocateRegistry.getRegistry(registryHost, registryPort, clientSocketFactory); testRegistry(reg); return reg; } catch (RemoteException ex) { logger.debug("RMI registry access threw exception", ex); logger.warn("Could not detect RMI registry - creating new one"); // Assume no registry found -> create new one. LocateRegistry.createRegistry(registryPort); Registry reg = LocateRegistry.getRegistry(registryHost, registryPort, clientSocketFactory); testRegistry(reg); return reg; } } else { return getRegistry(registryPort, clientSocketFactory, serverSocketFactory); } } 成功了 import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.server.UnicastRemoteObject; import java.util.Random; public class GuessingGameServer extends UnicastRemoteObject implements GuessingGameInterface { private int num; public GuessingGameServer() throws RemoteException { super(); num = new Random().nextInt(100) + 1; System.out.println("[Server] Generated number to guess: " + num); } public String guessNumber(int guess) throws RemoteException { System.out.println("[Server] Client guessed: " + guess); if (guess == num) { return "Correct!"; } else if (guess < num) { return "Too Low!"; } else { return "Too High!"; } } public static void main(String[] args) { try { LocateRegistry.createRegistry(1099); System.out.println("[Server] RMI Registry started on port 1099"); GuessingGameServer game = new GuessingGameServer(); Naming.rebind("rmi://localhost/GuessingGameService", game); System.out.println("[Server] Guessing Game Server is running..."); } catch (Exception e) { e.printStackTrace(); } } }
CSRF 与 Spring Security 集成时,会话超时导致 Spring MVC 中的访问被拒绝
我在 Spring MVC 项目中将 CSRF 令牌与 Spring Security 集成。使用 CSRF 令牌一切正常,令牌将从客户端发送到服务器端。 我已经更改了退出方式
使用 Spring Cloud API Gate 重构 Spring MVC 应用程序
我最近开始将使用 MVC 和 JSP 的单体 Java Spring 应用程序分解为更小的微服务。到目前为止我一直在使用 Spring Cloud API Gateway。我继续为 JSP 提供服务...
我们如何通过 @PathVariable 管理 Spring Security 中的单独会话?
假设我们对以下 URL 有一种自定义的身份验证方式。 路径1:http://www.example.com/company1/home 路径2:http://www.example.com/company2/home 路径3:http://www.example.com/company3...
背景 我正在开发一个应用程序(使用 Spring MVC),其基本路径为: http://localhost:8080/myapplication/ 我有一个样式表 /css/style.css,我试图用绝对引用......