在本地主机上运行以下代码时出现 406 错误:-
控制器代码:-
//imports
import AvailabilityReportService;
import SAvailabilityReport;
@Controller
@RequestMapping("/service/*")
public class SAvailabilityController {
@Autowired
@Qualifier("AvailabilityReportService")
private AvailabilityReportService availabilityReportService;
@RequestMapping(value = "/{cat}", method = RequestMethod.GET)
public @ResponseBody
SAvailabilityReport getAvailabilityReport(@PathVariable String cat) {
try
{
return availabilityReportService.generateAvailabilityReport(cat);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
可用性报告服务类:-
import SAvailabilityReport;
public interface AvailabilityReportService {
public SAvailabilityReport generateAvailabilityReport(String cat) throws Exception;
}
现在实现上述类的availabilityreportserviceimpl类:-
//The required imports
@Service("AvailabilityReportService")
public class AvailabilityReportServiceImpl implements AvailabilityReportService {
private @Value("${username}")
String username;
private @Value("${password}")
String password;
private @Value("${username1}")
String username1;
private @Value("${password1}")
String password1;
private PropertiesConfiguration propConfig;
@PostConstruct
public void initIt() throws Exception {
String propertiesFile = "/META-INF/common.properties";
propConfig = new PropertiesConfiguration(this.getClass().getResource(
propertiesFile));
propConfig.setReloadingStrategy(new FileChangedReloadingStrategy());
}
public SAvailabilityReport generateAvailabilityReport(String cat)
throws Exception {
String user;
String pass;
String time;
if (cat == null)
return null;
String url = (String) propConfig.getProperty("s_"
+ cat.toLowerCase());
if (url == null)
return null;
SAvailabilityReport availabilityReport = new SAvailabilityReport();
if((cat.toLowerCase()).equals("h") || (cat.toLowerCase()).equals("f"))
{
user=username;
pass=password;
}
else
{
user=username1;
pass=password1;
}
WebClient webClient = provideCredentials(user,pass);
HtmlPage resultPage = webClient.getPage(url);
HtmlTable resultTable = (HtmlTable) resultPage.getByXPath(
"//table[@class='data']").get(0);
List<HtmlTableRow> rowsList = resultTable.getRows();
int rowsSize = rowsList.size();
time=(resultTable.getCellAt((rowsSize-1),1)).asText();
availabilityReport.settime(time);
return availabilityReport;
}
private WebClient provideCredentials(String username, String password) {
WebClient webClient = new WebClient();
DefaultCredentialsProvider credentialsProvider = (DefaultCredentialsProvider) webClient
.getCredentialsProvider();
credentialsProvider.addCredentials(username, password);
return webClient;
}
最后,savailabilityreport 类是:-
//imports
public class SAvailabilityReport {
private String time;
public SAvailabilityReport()
{
}
public void settime(String time)
{
this.time=time;
}
}
我已经做了一些关于将jackson-core-asl和jackson-mapper-asl输入到我的pom.xml中的研究,而且。我已经完成了这些但仍然是相同的406错误。我从中获得价值的网址有与用户名和密码一起在 common.proprties 文件中定义。