Я создал апплет, в котором я пытаюсь получить объекты URLConnection выходной поток , используя conn.getOutputStream (); .Когда я пытаюсь это сделать, мой апплет выдает исключение java.net.UnknownServiceException: протокол не поддерживает вывод .
Что идет не так и как я могу это исправить?Это была проблема, с которой я сталкивался некоторое время, и я действительно подчеркиваю, потому что я не понимаю, что именно не так и как я могу это исправить.
Некоторая важная справочная информация.Я открываю и запускаю свой апплет, открывая файл HTML, который загружает апплет.Апплет успешно загружается и создает все свои JComponents.При попытке получить выходной поток я получаю исключение, о котором я упоминал выше.
Вывод, отображаемый в моем апплете при запуске в браузере:
Путь: файл: /C: / Пользователи / Soribo / Рабочий стол / Веб-сайт / Тестирование / Подключение (): Ошибка: java.net.UnknownServiceException: протокол не поддерживает вывод
Мой код:
public class TestApplet extends JApplet
{
JTextArea displayTf;
public TestApplet()
{
}
public void init()
{
try
{
SwingUtilities.invokeAndWait( new Runnable() {
public void run()
{
initComponents();
connect();
}
});
}
catch (InterruptedException e) { e.printStackTrace(); }
catch (InvocationTargetException e) { e.printStackTrace(); }
}
public void stop() {}
public void destroy() {}
public void start() {}
public void initComponents()
{
JPanel mainPanel = (JPanel) getContentPane();
displayTf = new JTextArea( "" );
mainPanel.add( displayTf );
}
public void connect()
{
try
{
displayTf.setText( displayTf.getText() + "\nPath: " + getCodeBase() ); // In the browser it displays 'file:/c:/.../TestApplet/bin'
URL servletUrl = new URL( getCodeBase(), "TestApplet" ); // My applet's class file name is TestApplet.class
URLConnection conn = servletUrl.openConnection();
conn.setDoInput( true );
conn.setDoOutput( true );
conn.setUseCaches( false );
conn.setDefaultUseCaches (false);
conn.setRequestProperty ("Content-Type", "application/octet-stream"); // Set the content type to indicate that we're sending binary data
OutputStream out = conn.getOutputStream(); // EXCEPTION thrown here java.net.UnknownServiceException: protocol doesn't support output
// Some tests I have done
// conn.setRequestProperty( "Content-Type", "application/x-java-serialized-object" );
// conn.setRequestProperty("Authorization", "Basic " + encode("uidPassword"));
// System.setProperty("http.proxyHost", "proxy.example.com");
// System.setProperty("http.proxyPort", "8080");
}
catch ( IOException e )
{
displayTf.setText( displayTf.getText() + "\nIn connect(): Failure: " + e );
}
}