मेरे पास बनाई गई स्प्रिंग एमवीसी प्रोजेक्ट में निम्न संरचना है।java.lang.IllegalArgumentException: अपरिचित प्रकार: [शून्य]
public class CustomerTest {
//@Mock
//private Customer customer;
@Mock
private CustomerService service;
@InjectMocks
private CustomersController custcontroller;
private MockMvc mockmvc;
/* Before executes before each and every test */
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
mockmvc = MockMvcBuilders.standaloneSetup(custcontroller).build();
}
/*test that our requests are being sent*/
@Test
public void getExistingCustomerEntry() throws Exception {
// assertEquals(expected parameter,your parameter)
Customer cust = new Customer();
cust.setCustomer_id(1L);
cust.setName("sam");
when(service.find(1L)).thenReturn(cust);
try {
mockmvc.perform(get("/rest/cust-entries/1"))
.andExpect((jsonPath("$.name", Is.is(cust.getName()))))
.andExpect(jsonPath("$.links[*].href", hasItem(endsWith("/cust-entries/1"))))
.andExpect(status().isOk())
.andDo(print());
} catch(Exception e) {
throw e;
}
}
}
नियंत्रक क्लास के रूप में नीचे है:
@Controller
public class CustomersController {
private CustomerService service;
public CustomersController(CustomerService service) {
this.service = service;
}
/*used a path variable to allow to bind a variable in the url to the Java variable*/
@RequestMapping(value = "/rest/cust-entries/{customer_id}", method= RequestMethod.GET)
public ResponseEntity<CustomerResource> getCustomerEntry(@PathVariable Long customer_id) {
Customer custEntry = service.find(customer_id);
System.out.println("Was here" + customer_id);
CustomerResource resource = new CustomerServiceEntryAsm().toResource(custEntry);
return new ResponseEntity<CustomerResource>(resource,HttpStatus.OK);
}
}
मैं CustomerTest वर्ग
CustomerTest
test.java.CustomerTest getExistingCustomerEntry (test.java चलाने के बाद निम्न त्रुटि संदेश मिलता है .CustomerTest) org.springframework.web.util.NestedServletException: अनुरोध प्रसंस्करण विफल रहा; नेस्टेड अपवाद java.lang.IllegalArgumentException है: अपरिचित प्रकार: [अमान्य]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167)
at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:155)
at test.java.CustomerTest.getExistingCustomerEntry(CustomerTest.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
की वजह से: java.lang.IllegalArgumentException: अपरिचित प्रकार: [अमान्य]
at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1109)
at com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:566)
at com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:602)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.getJavaType(AbstractJackson2HttpMessageConverter.java:311)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:249)
at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:100)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:222)
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:183)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:80)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
... 33 more
मैं JUnit परीक्षण डिबग और नियंत्रक वर्ग और संसाधन की वापसी प्रकार पर एक शून्य तर्क के अपवाद मैं गलत यहाँ क्या कर रहा हूँ निम्न पंक्ति
return new ResponseEntity<CustomerResource>(resource,HttpStatus.OK);
पर है?
काम किया धन्यवाद :) – MindBrain
मेरे लिए काम किया; धन्यवाद! –
एचएचएमएम मुझे बस इस मुद्दे का सामना करना पड़ा। मैंने जो किया, मैंने 'जैक्सन-कोर', 'जैक्सन-एनोटेशन', 'जैक्सन-डाटाटाइप-जेएसआर 310' संस्करण' 2.7.1' का उपयोग किया। 'जैक्सन-डाटाबेस' संस्करण '2.7.1-1'। 'जैक्सन-डाटाटाइप-हाइबरनेट 5' संस्करण' 2.6.5' के लिए। चीजें काम करना शुरू कर दिया। मैं वसंत संस्करण '4.2.4.RELEASE' और 'हाइबरनेट-एंटाइट्यूमर' संस्करण' 5.1.0.फिनल 'का उपयोग कर रहा हूं। मेरे लिए अपराधी 'जैक्सन-डाटाटाइप-हाइबरनेट 5' था। इसे '2.6.5' तक डाउनग्रेड करें मेरे लिए समाधान था। धन्यवाद – Basit