タグ付けされた質問 「spring」

Spring Frameworkは、Javaプラットフォームでのアプリケーション開発のためのオープンソースフレームワークです。中核となるのは、コンポーネントベースのアーキテクチャに対する豊富なサポートであり、現在、20を超える高度に統合されたモジュールを備えています。

8
Spring RestTemplateタイムアウト
Webアプリケーションで使用されるRESTサービスの接続タイムアウトを設定したいのですが。SpringのRestTemplateを使用してサービスと通信しています。私はいくつかの調査を行い、以下のxmlを見つけて使用しました(私のアプリケーションxml内)。これは、タイムアウトを設定するためのものです。Spring 3.0を使用しています。 RestTemplateを使用したSpring Webサービスのタイムアウト構成でも同じ問題が発生しましたが、ソリューションはそれほどきれいではないようです。Spring構成を介してタイムアウト値を設定することをお勧めします <bean id="RestOperations" class="org.springframework.web.client.RestTemplate"> <constructor-arg> <bean class="org.springframework.http.client.CommonsClientHttpRequestFactory"> <property name="readTimeout" value="${restURL.connectionTimeout}" /> </bean> </constructor-arg> </bean> readTimeoutを何に設定しても、次のようになります: ネットワークケーブルが切断されました: 約20秒待機し、次の例外を報告します: org.springframework.web.client.ResourceAccessException:I / Oエラー:ホストへのルートがありません:接続。ネストされた例外はjava.net.NoRouteToHostException:ホストへのルートがありません:接続 URLが正しくないため、404がRESTサービスによって返されました: 約10秒間待機し、次の例外を報告します: org.springframework.web.client.HttpClientErrorException:404 Not Found 私の要件では、タイムアウトを短くする必要があるため、これらを変更できるようにする必要があります。私が間違っていることについてのアイデアはありますか? どうもありがとう。

7
Spring Test&Security:認証をモックする方法は?
コントローラのURLが適切に保護されているかどうかを単体テストする方法を見つけようとしていました。誰かが物事を変更し、誤ってセキュリティ設定を削除した場合に備えて。 私のコントローラーメソッドは次のようになります。 @RequestMapping("/api/v1/resource/test") @Secured("ROLE_USER") public @ResonseBody String test() { return "test"; } 私は次のようにWebTestEnvironmentを設定しました: import javax.annotation.Resource; import javax.naming.NamingException; import javax.sql.DataSource; import org.junit.Before; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.web.FilterChainProxy; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import …

10
Spring Resttemplateの例外処理
以下はコードスニペットです。基本的に、エラーコードが200以外の場合に例外を伝播しようとしています。 ResponseEntity<Object> response = restTemplate.exchange(url.toString().replace("{version}", version), HttpMethod.POST, entity, Object.class); if(response.getStatusCode().value()!= 200){ logger.debug("Encountered Error while Calling API"); throw new ApplicationException(); } ただし、サーバーからの500応答の場合、例外が発生します org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 本当に残りのテンプレート交換メソッドをラップする必要がありますか?コードの目的は何でしょうか?

7
Springで自動配線された@ValueフィールドをMockitoでモックするにはどうすればよいですか?
Spring 3.1.4.RELEASEとMockito 1.9.5を使用しています。私の春のクラスでは: @Value("#{myProps['default.url']}") private String defaultUrl; @Value("#{myProps['default.password']}") private String defaultrPassword; // ... 私が現在そのように設定しているJUnitテストから: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:test-context.xml" }) public class MyTest { 「defaultUrl」フィールドの値をモックしたいのですが。他のフィールドの値をモックしたくないことに注意してください。「defaultUrl」フィールドのみをそのままにしたいと思います。またsetDefaultUrl、クラスには明示的な「setter」メソッド(例:)がなく、テストのためだけにメソッドを作成したくないことにも注意してください。 これを踏まえて、どのようにしてその1つのフィールドの値を模擬できますか?

27
データソースの構成に失敗しました:「url」属性が指定されておらず、埋め込みデータソースを構成できませんでした
私はMongoDBを使用してSpringBoot Batchの例に取り組んでおり、すでにmongodサーバーを起動しています。 アプリケーションを起動すると、以下のエラーが発生します。 この問題へのポインタはありますか? *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), …

3
ContextLoaderListenerかどうか?
標準のSpring Webアプリケーション(Rooまたは「Spring MVC Project」テンプレートで作成)は、ContextLoaderListenerおよびでweb.xmlを作成しますDispatcherServlet。なぜ彼らはを使用してDispatcherServlet、完全な構成をロードするだけではないのですか? 私は、ContextLoaderListenerを使用してWebに関連しないものをロードする必要があり、DispatcherServletを使用してWebに関連するもの(コントローラーなど)をロードすることを理解しています。この結果、2つのコンテキスト(親コンテキストと子コンテキスト)が生成されます。 バックグラウンド: 私はこの標準的な方法で数年間それをしていました。 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value> </context-param> <!-- Creates the Spring Container shared by all Servlets and Filters --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- Handles Spring requests --> <servlet> <servlet-name>roo</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/spring/webmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> これにより、2つのコンテキストとそれらの間の依存関係で問題が発生することがよくありました。以前は常に解決策を見つけることができました。これにより、ソフトウェアの構造/アーキテクチャが常に改善されると強く感じています。しかし今、私は両方の状況の出来事で問題に直面しています。 -ただし、これにより、この2つのコンテキストパターンを再考し、私は自分自身に問いかけます。なぜ、この問題に自分を持ち込む必要があるのか​​、すべてのSpring構成ファイルを1つにロードしDispatcherServletてContextLoaderListener完全に削除しないのはなぜですか。(まだ、異なる構成ファイルを使用しますが、コンテキストは1つだけです。) 削除しない理由はありますContextLoaderListenerか?

5
Spring MVCコントローラーへのGETリクエストで日付パラメーターを受け入れる方法は?
YYYY-MM-DD形式の日付をSpring Controllerに送信するGETリクエストがあります。コントローラコードは次のとおりです。 @RequestMapping(value="/fetch" , method=RequestMethod.GET) public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) { //Content goes here } Firebugで確認しているため、リクエストは正しく送信されます。エラーが発生します: HTTPステータス400:クライアントから送信されたリクエストは構文的に正しくありませんでした。 コントローラーにこの形式の日付を受け入れさせるにはどうすればよいですか?助けてください。何が悪いのですか?
122 java  spring  date  spring-mvc 

2
Spring Bootのこのspring.jpa.open-in-view = trueプロパティとは何ですか?
spring.jpa.open-in-view=trueSpring BootのドキュメントでJPA構成のプロパティを見ました。 でtrue、それがすべてで提供されていない場合、このプロパティのデフォルト値は?; これは実際に何をしますか?私はそれについての良い説明を見つけることができませんでした。 SessionFactory代わりに使用させEntityManagerFactoryますか?はいの場合、EntityManagerFactory代わりに使用できるようにするにはどうすればよいですか? ありがとう!

7
Spring MVCのDelegatingFilterProxyのポイントは何ですか?
私のSpring MVCアプリにこれが見られますweb.xml: <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> なぜそこにあるのか、そしてそれが実際に必要かどうかを理解しようとしています。 私はこの説明をSpringドキュメントで見つけましたが、それは私がそれを理解するのに役立ちません: このコンポーネントは、で定義されたサーブレットweb.xmlとSpringで定義されたコンポーネントの間の「接着剤」であることが示唆されているようapplicationContext.xmlです。 7.1 DelegatingFilterProxy サーブレットフィルターを使用する場合は、明らかにそれらをで宣言する必要がありますweb.xml。そうしないと、サーブレットコンテナーによって無視されます。Spring Securityでは、フィルタークラスはアプリケーションコンテキストで定義されたSpring Beanでもあるため、Springの豊富な依存性注入機能とライフサイクルインターフェースを利用できます。SpringはとアプリケーションコンテキストDelegatingFilterProxy間のリンクを提供しweb.xmlます。 DelegatingFilterProxyを使用すると、web.xmlファイルに次のようなものが表示されます。 <filter> <filter-name>myFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> フィルターは実際にはDelegatingFilterProxyであり、実際にフィルターのロジックを実装するクラスではないことに注意してください。どのようなDelegatingFilterProxy行いは、Springアプリケーションコンテキストから取得された豆を通過フィルタのメソッドを委譲です。これにより、BeanはSpring Webアプリケーションのコンテキストライフサイクルサポートと構成の柔軟性を活用できます。Beanは実装javax.servlet.Filterする必要があり、filter-name要素と同じ名前である必要があります。詳細については、DelegatingFilterProxyのJavadocを参照してください それで、これをから取り出した場合web.xml、どうなりますか?サーブレットがSpringコンテナと通信できなくなりますか?**

5
空のRequestParam値にdefaultValueを使用させることは可能ですか?
次のようなリクエストマッピングがある場合: @RequestMapping(value = "/test", method = RequestMethod.POST) @ResponseBody public void test(@RequestParam(value = "i", defaultValue = "10") int i) { } そして、このリクエストを次のように呼び出します: http://example.com/test?i= エラーメッセージが表示される タイプ「java.lang.String」の値をタイプ「int」に変換できませんでした。ネストされた例外はjava.lang.NumberFormatException:入力文字列の場合: "" ' これを解決するには、JavaScriptクライアントが空のパラメータを送信しないようにするか、文字列値を受け入れ、それらが空白でないことが判明した場合にのみ解析します。 更新:春のそれ以降のバージョンでは、本来望ましい動作が実装されています。 私はこれを春の4.3.5でテストしたところ、動作が実際にはnull値をデフォルト値に変換することがわかりましたNumberFormatException。私の元のマッピングは正常に動作します。 この動作の変更が行われた春のバージョンはわかりません。
120 java  spring  spring-mvc 

14
Spring Bootアプリケーションを正しい方法でシャットダウンする方法は?
Spring Boot Documentで、彼らは「各SpringApplicationはシャットダウンフックをJVMに登録して、終了時にApplicationContextが正常に閉じられるようにする」と述べています。 ctrl+cシェルコマンドをクリックすると、アプリケーションを正常にシャットダウンできます。アプリケーションを本番マシンで実行する場合は、コマンドを使用する必要があります java -jar ProApplicaton.jar。しかし、シェルターミナルを閉じることはできません。そうしないと、プロセスが終了します。 のようなコマンドを実行nohup java -jar ProApplicaton.jar &するctrl+cと、正常にシャットダウンするために使用できなくなります。 本番環境でSpring Boot Applicationを開始および停止する正しい方法は何ですか?

2
@Valueをオプションとして定義する方法
Spring Beanには次のものが含まれています。 @Value("${myValue}") private String value; 値は正しく注入されます。ただし、変数はオプションである必要があり、コマンドラインパラメーターとして渡され(SimpleCommandLinePropertySourceを使用してSpringコンテキストに追加されます)、この引数は常に存在するわけではありません。 デフォルト値を提供するために、次の両方を試しました。 @Value("${myValue:}") @Value("${myValue:DEFAULT}") ただし、いずれの場合も、実際の値がある場合でも、コロンの後のデフォルト引数が注入されます。これは、Springが注入する必要があるものをオーバーライドするように見えます。 @Valueが不要であることを指定する正しい方法は何ですか? ありがとう

9
Spring MVCのコントローラーアクションから外部URLにリダイレクトする
次のコードがユーザーをプロジェクト内のURLにリダイレクトしていることに気づきました。 @RequestMapping(method = RequestMethod.POST) public String processForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, ModelMap model) { String redirectUrl = "yahoo.com"; return "redirect:" + redirectUrl; } 一方、以下は意図したとおりに正しくリダイレ​​クトされますが、http://またはhttps://が必要です @RequestMapping(method = RequestMethod.POST) public String processForm(HttpServletRequest request, LoginForm loginForm, BindingResult result, ModelMap model) { String redirectUrl = "http://www.yahoo.com"; return "redirect:" + redirectUrl; } 有効なプロトコルが含まれているかどうかに関係なく、指定されたURLに常にリダイレクトして、ビューにリダイレクトしないようにしたい。どうやってやるの? おかげで、
118 java  spring  jsp  spring-mvc 

9
SpringでREST APIのバージョン管理を行う方法は?
Spring 3.2.xを使用してREST APIバージョンを管理する方法を検索してきましたが、メンテナンスが簡単なものは見つかりませんでした。最初に私が抱えている問題を説明し、次に解決策を説明します...しかし、ここで車輪を再発明するのかどうか疑問に思います。 Acceptヘッダーに基づいてバージョンを管理したいと思います。たとえば、リクエストにAcceptヘッダーが含まれている場合、application/vnd.company.app-1.1+jsonSpring MVCがこれをこのバージョンを処理するメソッドに転送するようにします。また、APIのすべてのメソッドが同じリリースで変更されるわけではないので、各コントローラーに移動して、バージョン間で変更されていないハンドラーを変更する必要はありません。また、Springは既に呼び出すメソッドを検出しているため、コントローラー自体で使用するバージョンを判別するロジックは必要ありません(サービスロケーターを使用)。 ハンドラーがバージョン1.0で導入され、v1.7で変更されたバージョン1.0から1.8のAPIを取り上げたので、これを次のように処理します。コードがコントローラー内にあり、ヘッダーからバージョンを抽出できるコードがいくつかあると想像してください。(Springでは以下は無効です) @RequestMapping(...) @VersionRange(1.0,1.6) @ResponseBody public Object method1() { // so something return object; } @RequestMapping(...) //same Request mapping annotation @VersionRange(1.7) @ResponseBody public Object method2() { // so something return object; } 2つのメソッドに同じRequestMappingアノテーションがあり、Springがロードに失敗するため、これはSpring では不可能です。アイデアは、VersionRangeアノテーションがオープンまたはクローズドバージョン範囲を定義できるというものです。最初の方法はバージョン1.0から1.6まで有効ですが、2番目の方法はバージョン1.7以降(最新バージョン1.8を含む)で有効です。誰かがバージョン99.99に合格することを決めた場合、このアプローチはうまくいかないことを知っていますが、それは私が共存しても問題ありません。 さて、春はどのように機能するかを真剣にやり直さなければ上記は不可能なので、ハンドラーをリクエストに一致させる方法をいじくり回すこと、特に自分自身を書くことを考えていました ProducesRequestConditionでそこにバージョン範囲を持たせることを考えていました。例えば コード: @RequestMapping(..., produces = "application/vnd.company.app-[1.0-1.6]+json) @ResponseBody public Object method1() { …

18
春のブーツで残りのベースURLを設定するにはどうすればよいですか?
私は単一の春のブートプロジェクトでmvcと休憩を混合しようとしています。 すべての残りのコントローラー(例:example.com/api)のベースパスを1か所に設定したい(@RequestMapping('api/products')代わりに、で各コントローラーに注釈を付けたくありません)@RequestMapping('/products')。 MVCコントローラーは、example.com / whateverからアクセスできる必要があります 出来ますか? (私はSpring Data Restを使用せず、Spring MVCのみを使用しています)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.